Skip to content

Commit 3ce5558

Browse files
committed
scripts(run-docker): style cleanup and explicit runtime guards
1 parent b77d7d5 commit 3ce5558

1 file changed

Lines changed: 23 additions & 17 deletions

File tree

scripts/run-docker.sh

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ _detect_runtime() {
1616
if [ -n "${TERMUX_CONTAINER_RUNTIME:-}" ]; then
1717
case "$TERMUX_CONTAINER_RUNTIME" in
1818
docker|podman) echo "$TERMUX_CONTAINER_RUNTIME"; return;;
19-
*) echo "Error: TERMUX_CONTAINER_RUNTIME must be 'docker' or 'podman'" 1>&2; exit 1;;
19+
*) echo "Error: TERMUX_CONTAINER_RUNTIME must be 'docker' or 'podman'" >&2; exit 1;;
2020
esac
2121
fi
22-
if command -v docker >/dev/null 2>&1; then
22+
if command -v docker &>/dev/null; then
2323
echo "docker"
24-
elif command -v podman >/dev/null 2>&1; then
24+
elif command -v podman &>/dev/null; then
2525
echo "podman"
2626
else
27-
echo "Error: Neither docker nor podman found in PATH" 1>&2
27+
echo "Error: Neither docker nor podman found in PATH" >&2
2828
exit 1
2929
fi
3030
}
@@ -34,12 +34,12 @@ _detect_runtime() {
3434
_detect_sudo() {
3535
if [ "$(id -u)" = "0" ]; then
3636
echo ""
37-
elif command -v sudo >/dev/null 2>&1; then
37+
elif command -v sudo &>/dev/null; then
3838
echo "sudo"
39-
elif command -v doas >/dev/null 2>&1; then
39+
elif command -v doas &>/dev/null; then
4040
echo "doas"
4141
else
42-
echo "Error: This script must be run as root or with sudo/doas available in PATH" 1>&2
42+
echo "Error: This script must be run as root or with sudo/doas available in PATH" >&2
4343
exit 1
4444
fi
4545
}
@@ -100,7 +100,7 @@ while (( $# != 0 )); do
100100
TERMUX_DOCKER_RUN_EXTRA_ARGS="--volume /data:/data --volume $HOME/.termux-build:$CONTAINER_HOME_DIR/.termux-build $TERMUX_DOCKER_RUN_EXTRA_ARGS"
101101
shift 1;;
102102
--) shift 1; break;;
103-
-*) echo "Error: Unknown option '$1'" 1>&2; shift 1; exit 1;;
103+
-*) echo "Error: Unknown option '$1'" >&2; shift 1; exit 1;;
104104
*) break;;
105105
esac
106106
done
@@ -117,7 +117,7 @@ if [ "${dry_run}" = "true" ]; then
117117
RETURN_VALUE=0
118118
OUTPUT="$("$TERMUX_SCRIPTDIR/scripts/bin/build-package-dry-run-simulation.sh" "$@" 2>&1)" || RETURN_VALUE=$?
119119
if [ $RETURN_VALUE -ne 0 ]; then
120-
echo "$OUTPUT" 1>&2
120+
echo "$OUTPUT" >&2
121121
if [ $RETURN_VALUE -eq 85 ]; then # EX_C__NOOP
122122
echo "$0: Exiting since '$BUILDSCRIPT_NAME' would not have built any packages"
123123
exit 0
@@ -148,7 +148,7 @@ elif [ "$RUNTIME" = "docker" ]; then
148148
SEC_OPT=" --security-opt seccomp=$REPOROOT/scripts/profile.json --security-opt apparmor=_custom-termux-package-builder-$CONTAINER_NAME --cap-add CAP_SYS_ADMIN --device /dev/fuse"
149149
fi
150150
else
151-
echo "Error: Unsupported runtime '$RUNTIME'" 1>&2
151+
echo "Error: Unsupported runtime '$RUNTIME'" >&2
152152
exit 1
153153
fi
154154

@@ -168,10 +168,10 @@ else
168168
fi
169169

170170
USER=builder
171-
REAL_SUDO=$(_detect_sudo) || exit 1
171+
SUDO_CMD=$(_detect_sudo) || exit 1
172172

173173
if [ -n "${TERMUX_DOCKER_USE_SUDO-}" ]; then
174-
SUDO=$REAL_SUDO
174+
SUDO=$SUDO_CMD
175175
else
176176
SUDO=""
177177
fi
@@ -206,7 +206,7 @@ if [ "$RUNTIME" = "docker" ]; then
206206
if [ -n "$msg" ]; then
207207
echo "$msg..."
208208
fi
209-
cat "$profile_path" | sed -e "s/{{CONTAINER_NAME}}/$CONTAINER_NAME/g" | $REAL_SUDO "$APPARMOR_PARSER" -rK
209+
cat "$profile_path" | sed -e "s/{{CONTAINER_NAME}}/$CONTAINER_NAME/g" | $SUDO_CMD "$APPARMOR_PARSER" -rK
210210
fi
211211
}
212212

@@ -249,7 +249,7 @@ __change_container_pid_max() {
249249
fi
250250
}
251251

252-
if ! $SUDO $RUNTIME container inspect $CONTAINER_NAME > /dev/null 2>&1; then
252+
if ! $SUDO $RUNTIME container inspect $CONTAINER_NAME &>/dev/null; then
253253
echo "Creating new container..."
254254
if [ "$RUNTIME" = "podman" ]; then
255255
# In rootless Podman the default user-namespace mapping is:
@@ -275,7 +275,7 @@ if ! $SUDO $RUNTIME container inspect $CONTAINER_NAME > /dev/null 2>&1; then
275275
--tty \
276276
$TERMUX_DOCKER_RUN_EXTRA_ARGS \
277277
$TERMUX_BUILDER_IMAGE_NAME
278-
else
278+
elif [ "$RUNTIME" = "docker" ]; then
279279
$SUDO $RUNTIME run \
280280
--detach \
281281
--init \
@@ -286,12 +286,15 @@ if ! $SUDO $RUNTIME container inspect $CONTAINER_NAME > /dev/null 2>&1; then
286286
$TERMUX_DOCKER_RUN_EXTRA_ARGS \
287287
$TERMUX_BUILDER_IMAGE_NAME
288288
__change_builder_uid_gid
289+
else
290+
echo "Error: Unsupported runtime '$RUNTIME'" >&2
291+
exit 1
289292
fi
290293
__change_container_pid_max
291294
fi
292295

293296
if [[ "$($SUDO $RUNTIME container inspect -f '{{ .State.Running }}' $CONTAINER_NAME)" == "false" ]]; then
294-
$SUDO $RUNTIME start $CONTAINER_NAME >/dev/null 2>&1
297+
$SUDO $RUNTIME start $CONTAINER_NAME &>/dev/null
295298
__change_container_pid_max
296299
fi
297300

@@ -317,11 +320,14 @@ if [ "$RUNTIME" = "podman" ]; then
317320
$TERMUX_DOCKER_EXEC_EXTRA_ARGS \
318321
$CONTAINER_NAME \
319322
"$@"
320-
else
323+
elif [ "$RUNTIME" = "docker" ]; then
321324
$SUDO $RUNTIME exec $CI_OPT \
322325
--env "DOCKER_EXEC_PID_FILE_PATH=$DOCKER_EXEC_PID_FILE_PATH" \
323326
--interactive $DOCKER_TTY \
324327
$TERMUX_DOCKER_EXEC_EXTRA_ARGS \
325328
$CONTAINER_NAME \
326329
"$@"
330+
else
331+
echo "Error: Unsupported runtime '$RUNTIME'" >&2
332+
exit 1
327333
fi

0 commit comments

Comments
 (0)