Skip to content

Commit 4198ddd

Browse files
committed
make --with-frankenphp-app=dir work with docker scripts
1 parent 8332ed8 commit 4198ddd

File tree

2 files changed

+84
-2
lines changed

2 files changed

+84
-2
lines changed

bin/spc-alpine-docker

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,47 @@ if [ ! -z "$GITHUB_TOKEN" ]; then
162162
ENV_LIST="$ENV_LIST -e GITHUB_TOKEN=$GITHUB_TOKEN"
163163
fi
164164

165+
# Intercept and rewrite --with-frankenphp-app option, and mount host path to /app/app
166+
FRANKENPHP_APP_PATH=""
167+
NEW_ARGS=()
168+
while [ $# -gt 0 ]; do
169+
case "$1" in
170+
--with-frankenphp-app=*)
171+
FRANKENPHP_APP_PATH="${1#*=}"
172+
NEW_ARGS+=("--with-frankenphp-app=/app/app")
173+
shift
174+
;;
175+
--with-frankenphp-app)
176+
if [ -n "${2:-}" ]; then
177+
FRANKENPHP_APP_PATH="$2"
178+
NEW_ARGS+=("--with-frankenphp-app=/app/app")
179+
shift 2
180+
else
181+
NEW_ARGS+=("$1")
182+
shift
183+
fi
184+
;;
185+
*)
186+
NEW_ARGS+=("$1")
187+
shift
188+
;;
189+
esac
190+
done
191+
192+
# Normalize the path and add mount if provided
193+
if [ -n "$FRANKENPHP_APP_PATH" ]; then
194+
# expand ~ to $HOME
195+
if [ "${FRANKENPHP_APP_PATH#~}" != "$FRANKENPHP_APP_PATH" ]; then
196+
FRANKENPHP_APP_PATH="$HOME${FRANKENPHP_APP_PATH#~}"
197+
fi
198+
# make absolute if relative
199+
case "$FRANKENPHP_APP_PATH" in
200+
/*) ABS_APP_PATH="$FRANKENPHP_APP_PATH" ;;
201+
*) ABS_APP_PATH="$(pwd)/$FRANKENPHP_APP_PATH" ;;
202+
esac
203+
MOUNT_LIST="$MOUNT_LIST -v \"$ABS_APP_PATH\":/app/app"
204+
fi
205+
165206
# Run docker
166207
# shellcheck disable=SC2068
167208
# shellcheck disable=SC2086
@@ -183,5 +224,5 @@ if [ "$SPC_DOCKER_DEBUG" = "yes" ]; then
183224
set -ex
184225
$DOCKER_EXECUTABLE run $PLATFORM_ARG --rm $INTERACT $ENV_LIST $MOUNT_LIST cwcc-spc-$SPC_USE_ARCH-$SPC_DOCKER_VERSION /bin/bash
185226
else
186-
$DOCKER_EXECUTABLE run $PLATFORM_ARG --rm $INTERACT $ENV_LIST $MOUNT_LIST cwcc-spc-$SPC_USE_ARCH-$SPC_DOCKER_VERSION bin/spc $@
227+
$DOCKER_EXECUTABLE run $PLATFORM_ARG --rm $INTERACT $ENV_LIST $MOUNT_LIST cwcc-spc-$SPC_USE_ARCH-$SPC_DOCKER_VERSION bin/spc "${NEW_ARGS[@]}"
187228
fi

bin/spc-gnu-docker

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,47 @@ if [ ! -z "$GITHUB_TOKEN" ]; then
174174
ENV_LIST="$ENV_LIST -e GITHUB_TOKEN=$GITHUB_TOKEN"
175175
fi
176176

177+
# Intercept and rewrite --with-frankenphp-app option, and mount host path to /app/app
178+
FRANKENPHP_APP_PATH=""
179+
NEW_ARGS=()
180+
while [ $# -gt 0 ]; do
181+
case "$1" in
182+
--with-frankenphp-app=*)
183+
FRANKENPHP_APP_PATH="${1#*=}"
184+
NEW_ARGS+=("--with-frankenphp-app=/app/app")
185+
shift
186+
;;
187+
--with-frankenphp-app)
188+
if [ -n "${2:-}" ]; then
189+
FRANKENPHP_APP_PATH="$2"
190+
NEW_ARGS+=("--with-frankenphp-app=/app/app")
191+
shift 2
192+
else
193+
NEW_ARGS+=("$1")
194+
shift
195+
fi
196+
;;
197+
*)
198+
NEW_ARGS+=("$1")
199+
shift
200+
;;
201+
esac
202+
done
203+
204+
# Normalize the path and add mount if provided
205+
if [ -n "$FRANKENPHP_APP_PATH" ]; then
206+
# expand ~ to $HOME
207+
if [ "${FRANKENPHP_APP_PATH#~}" != "$FRANKENPHP_APP_PATH" ]; then
208+
FRANKENPHP_APP_PATH="$HOME${FRANKENPHP_APP_PATH#~}"
209+
fi
210+
# make absolute if relative
211+
case "$FRANKENPHP_APP_PATH" in
212+
/*) ABS_APP_PATH="$FRANKENPHP_APP_PATH" ;;
213+
*) ABS_APP_PATH="$(pwd)/$FRANKENPHP_APP_PATH" ;;
214+
esac
215+
MOUNT_LIST="$MOUNT_LIST -v \"$ABS_APP_PATH\":/app/app"
216+
fi
217+
177218
# Run docker
178219
# shellcheck disable=SC2068
179220
# shellcheck disable=SC2086
@@ -196,5 +237,5 @@ if [ "$SPC_DOCKER_DEBUG" = "yes" ]; then
196237
set -ex
197238
$DOCKER_EXECUTABLE run $PLATFORM_ARG --privileged --rm -it $INTERACT $ENV_LIST --env-file /tmp/spc-gnu-docker.env $MOUNT_LIST cwcc-spc-gnu-$SPC_USE_ARCH-$SPC_DOCKER_VERSION /bin/bash
198239
else
199-
$DOCKER_EXECUTABLE run $PLATFORM_ARG --rm $INTERACT $ENV_LIST --env-file /tmp/spc-gnu-docker.env $MOUNT_LIST cwcc-spc-gnu-$SPC_USE_ARCH-$SPC_DOCKER_VERSION bin/spc $@
240+
$DOCKER_EXECUTABLE run $PLATFORM_ARG --rm $INTERACT $ENV_LIST --env-file /tmp/spc-gnu-docker.env $MOUNT_LIST cwcc-spc-gnu-$SPC_USE_ARCH-$SPC_DOCKER_VERSION bin/spc "${NEW_ARGS[@]}"
200241
fi

0 commit comments

Comments
 (0)