diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2018-10-02 00:40:30 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2018-10-02 02:44:42 -0400 |
commit | 302c648042ae1d7f8e0e95305dd50a9ed025e7e5 (patch) | |
tree | 6031ff47938290b7010038444f731e0b5dd66d48 /src/chroot-tools | |
parent | b41bd912b9440b0663cb25960346a4fb4805d62a (diff) |
distcc-tool: Simplify
- I'm pretty sure the "& trap 'jobs -p | xargs kill' EXIT; wait" bit is
100% superstition.
- Sprinkle `exec` in there to use fewer PIDs
- Don't bother with variables for short constant values, just hard-code
them
- Use `sleep infinity` instead of a dumb socat if we need to sleep
forever without doing anything.
Diffstat (limited to 'src/chroot-tools')
-rwxr-xr-x | src/chroot-tools/distcc-tool | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/chroot-tools/distcc-tool b/src/chroot-tools/distcc-tool index 5bb4f7b..7d9c283 100755 --- a/src/chroot-tools/distcc-tool +++ b/src/chroot-tools/distcc-tool @@ -24,6 +24,7 @@ # This program has very few dependencies: # - bash: 4.4 or newer (for @Q escaping) # - socat +# - sleep: must accept "infinity" # - cat: any version # - rm: any version # - sed: any version @@ -173,9 +174,7 @@ parse_DISTCC_HOSTS() { done if $forward_ports; then if [[ $newport == 8000 ]]; then - # listen on port 8000, but immediatly close, just so that we are - # listening on something - socat TCP-LISTEN:${newport},reuseaddr,fork SYSTEM:true & + exec sleep infinity fi trap "jobs -p | xargs -r kill --" EXIT wait @@ -195,7 +194,7 @@ server() { [[ $# -eq 0 ]] || panic local host port read -r host port - socat STDIO TCP:"$host:$port" + exec socat STDIO TCP:"$host:$port" } # Usage: client HOST PORT @@ -204,8 +203,7 @@ server() { # socket. client() { [[ $# -eq 2 ]] || panic - local file=/socket - { printf '%s\n' "$*"; cat; } | socat UNIX-CONNECT:"$file" STDIO + { printf '%s\n' "$*"; exec cat; } | exec socat UNIX-CONNECT:'/socket' STDIO } ################################################################################ @@ -220,9 +218,7 @@ odaemon() { cd "$chrootpath" umask 111 - socat UNIX-LISTEN:"./socket",fork SYSTEM:"${0@Q} server" & - trap "jobs -p | xargs -r kill --; rm -f -- ./socket" EXIT - wait + exec socat UNIX-LISTEN:'./socket',fork SYSTEM:"${0@Q} server" } # Usage: idaemon DISTCC_HOSTS |