From 69016ee6a4c0e67182c43b7c0d0246f831da1db0 Mon Sep 17 00:00:00 2001 From: gl0w Date: Thu, 10 Sep 2026 07:12:21 +0100 Subject: [PATCH] m6/entrypoint-testfix: match POSIX-safe argv form --- .../merges/2026-09-10T06-11-44.077140678Z.md | 9 +++ .../patch.diff | 73 +++++++++++++++++++ .../pr.md | 12 +++ tests/header_config.rs | 6 +- 4 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 .forge/merges/2026-09-10T06-11-44.077140678Z.md create mode 100644 .forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/patch.diff create mode 100644 .forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/pr.md diff --git a/.forge/merges/2026-09-10T06-11-44.077140678Z.md b/.forge/merges/2026-09-10T06-11-44.077140678Z.md new file mode 100644 index 0000000..7345e57 --- /dev/null +++ b/.forge/merges/2026-09-10T06-11-44.077140678Z.md @@ -0,0 +1,9 @@ +--- +pr: c1de23b1-1f96-42ea-8661-9468abf6409a +applied: false +verdict: fail +resolved: [] +created: 2026-09-10T06:11:44.077140678Z +--- +failed at 02_test.sh. +patch: 447b0de892e249edf47a7aaded277d93d25b1dd8 diff --git a/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/patch.diff b/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/patch.diff new file mode 100644 index 0000000..1e3a849 --- /dev/null +++ b/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/patch.diff @@ -0,0 +1,73 @@ +From aa2f0d1bc82722efe09d0ee0a471058775ff06ab Mon Sep 17 00:00:00 2001 +From: gl0w +Date: Thu, 10 Sep 2026 07:11:44 +0100 +Subject: [PATCH] m6/entrypoint: POSIX-safe argv (spaces/quotes in + name/description) + +--- + entrypoint.sh | 31 +++++++++++++++---------------- + 1 file changed, 15 insertions(+), 16 deletions(-) + +diff --git a/entrypoint.sh b/entrypoint.sh +index 6d4f149..191fbe9 100755 +--- a/entrypoint.sh ++++ b/entrypoint.sh +@@ -26,40 +26,39 @@ set -eu + # build below would misreport "branch not found". + git config --global --add safe.directory /data/repo + +-BUILD_ARGS="" ++# Build argv with "$@" (POSIX-safe: values with spaces/quotes survive). ++set -- /data/repo -o /srv/www + if [ -n "${HU13_BRANCH:-}" ]; then +- BUILD_ARGS="$BUILD_ARGS --branch $HU13_BRANCH" ++ set -- "$@" --branch "$HU13_BRANCH" + fi + if [ -n "${HU13_CLONE_URL:-}" ]; then +- BUILD_ARGS="$BUILD_ARGS --clone-url $HU13_CLONE_URL" ++ set -- "$@" --clone-url "$HU13_CLONE_URL" + fi + if [ -n "${HU13_REPO_NAME:-}" ]; then +- BUILD_ARGS="$BUILD_ARGS --repo-name $HU13_REPO_NAME" ++ set -- "$@" --repo-name "$HU13_REPO_NAME" + fi + if [ -n "${HU13_DESCRIPTION:-}" ]; then +- BUILD_ARGS="$BUILD_ARGS --description $HU13_DESCRIPTION" ++ set -- "$@" --description "$HU13_DESCRIPTION" + fi ++hu13 build "$@" + +-# shellcheck disable=SC2086 +-hu13 build /data/repo -o /srv/www $BUILD_ARGS ++set -- --www /srv/www --inbox-dir /data/inbox \ ++ --listen "${HU13_LISTEN:-0.0.0.0:39313}" + +-SERVE_ARGS="" + if [ -n "${HU13_MAX_TITLE:-}" ]; then +- SERVE_ARGS="$SERVE_ARGS --max-title $HU13_MAX_TITLE" ++ set -- "$@" --max-title "$HU13_MAX_TITLE" + fi + if [ -n "${HU13_MAX_BODY:-}" ]; then +- SERVE_ARGS="$SERVE_ARGS --max-body $HU13_MAX_BODY" ++ set -- "$@" --max-body "$HU13_MAX_BODY" + fi + if [ -n "${HU13_MAX_BYTES:-}" ]; then +- SERVE_ARGS="$SERVE_ARGS --max-bytes $HU13_MAX_BYTES" ++ set -- "$@" --max-bytes "$HU13_MAX_BYTES" + fi + if [ -n "${HU13_RATE_PER_HOUR:-}" ]; then +- SERVE_ARGS="$SERVE_ARGS --rate-per-hour $HU13_RATE_PER_HOUR" ++ set -- "$@" --rate-per-hour "$HU13_RATE_PER_HOUR" + fi + if [ -n "${HU13_QUOTA:-}" ]; then +- SERVE_ARGS="$SERVE_ARGS --quota $HU13_QUOTA" ++ set -- "$@" --quota "$HU13_QUOTA" + fi + +-# shellcheck disable=SC2086 +-exec hu13 serve --www /srv/www --inbox-dir /data/inbox \ +- --listen "${HU13_LISTEN:-0.0.0.0:39313}" $SERVE_ARGS ++exec hu13 serve "$@" +-- +2.55.0 + diff --git a/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/pr.md b/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/pr.md new file mode 100644 index 0000000..43d0194 --- /dev/null +++ b/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/pr.md @@ -0,0 +1,12 @@ +--- +id: c1de23b1-1f96-42ea-8661-9468abf6409a +title: m6/entrypoint-quote +state: open +base: master +head: m6/entrypoint-quote +draft: false +issues: [] +ci: fail +created: 2026-09-10T06:11:44.052625600Z +updated: 2026-09-10T06:11:56.573743204Z +--- diff --git a/tests/header_config.rs b/tests/header_config.rs index ef81f20..374d829 100644 --- a/tests/header_config.rs +++ b/tests/header_config.rs @@ -271,8 +271,10 @@ fn entrypoint_and_dockerfile_pass_both_envs() { for needle in [ "HU13_REPO_NAME", "HU13_DESCRIPTION", - "--repo-name $HU13_REPO_NAME", - "--description $HU13_DESCRIPTION", + "--repo-name", + "--description", + "\"$HU13_REPO_NAME\"", + "\"$HU13_DESCRIPTION\"", ] { assert!(ep.contains(needle), "entrypoint passes {needle}"); } -- 2.55.0