summaryrefslogtreecommitdiff
path: root/src/chroot-tools
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2018-10-02 00:40:30 -0400
committerLuke Shumaker <lukeshu@lukeshu.com>2018-10-02 02:44:42 -0400
commit302c648042ae1d7f8e0e95305dd50a9ed025e7e5 (patch)
tree6031ff47938290b7010038444f731e0b5dd66d48 /src/chroot-tools
parentb41bd912b9440b0663cb25960346a4fb4805d62a (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-xsrc/chroot-tools/distcc-tool14
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