net: run.sh: write wrapper command to shell script

Instead of passing a whole script to the terminal via command-line
argument, write it to a file. This is in preparation to use the same
script with tmux, see next patch.

Change-Id: I15760d706b20628421c10a16514120f442d5477f
This commit is contained in:
Oliver Smith 2022-01-18 11:21:37 +01:00
parent eba7d9ed8a
commit c64fc3fb05
1 changed files with 27 additions and 13 deletions

View File

@ -40,7 +40,9 @@ fi
logdir="current_log"
piddir="pids"
mkdir -p "$logdir" "$piddir"
wrapperdir="wrappers"
rm -rf "$wrapperdir"
mkdir -p "$logdir" "$piddir" "$wrapperdir"
find_term() {
# Find a terminal program and write to the global "terminal" variable
@ -97,20 +99,32 @@ term() {
local pidfile_term="$piddir/$title.term.pid"
pidfiles_must_not_exist "$pidfile" "$pidfile_term"
local wrapper="$wrapperdir/$title.sh"
cat << EOF > "$wrapper"
#!/bin/sh
export LD_LIBRARY_PATH='/usr/local/lib'
$1 &
echo \$! > $pidfile
wait
echo
while true; do
echo 'q Enter to close'
read q_to_close
if [ "x\$q_to_close" = xq ]; then
break
fi
done
EOF
chmod +x "$wrapper"
$terminal \
-title "CN:$title" \
-e sh -c "export LD_LIBRARY_PATH='/usr/local/lib'
$1 &
echo \$! > $pidfile
wait
echo
while true; do
echo 'q Enter to close'
read q_to_close
if [ \"x\$q_to_close\" = xq ]; then
break
fi
done" \
-e sh -c "$wrapper" \
&
echo "$!" > "$pidfile_term"