1 From 69016ee6a4c0e67182c43b7c0d0246f831da1db0 Mon Sep 17 00:00:00 20012 From: gl0w <gl0w@world>3 Date: Thu, 10 Sep 2026 07:12:21 +01004 Subject: [PATCH] m6/entrypoint-testfix: match POSIX-safe argv form5 6 ---7 .../merges/2026-09-10T06-11-44.077140678Z.md | 9 +++8 .../patch.diff | 73 +++++++++++++++++++9 .../pr.md | 12 +++10 tests/header_config.rs | 6 +-11 4 files changed, 98 insertions(+), 2 deletions(-)12 create mode 100644 .forge/merges/2026-09-10T06-11-44.077140678Z.md13 create mode 100644 .forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/patch.diff14 create mode 100644 .forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/pr.md15 16 diff --git a/.forge/merges/2026-09-10T06-11-44.077140678Z.md b/.forge/merges/2026-09-10T06-11-44.077140678Z.md17 new file mode 10064418 index 0000000..7345e5719 --- /dev/null20 +++ b/.forge/merges/2026-09-10T06-11-44.077140678Z.md21 @@ -0,0 +1,9 @@22 +---23 +pr: c1de23b1-1f96-42ea-8661-9468abf6409a24 +applied: false25 +verdict: fail26 +resolved: []27 +created: 2026-09-10T06:11:44.077140678Z28 +---29 +failed at 02_test.sh.30 +patch: 447b0de892e249edf47a7aaded277d93d25b1dd831 diff --git a/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/patch.diff b/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/patch.diff32 new file mode 10064433 index 0000000..1e3a84934 --- /dev/null35 +++ b/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/patch.diff36 @@ -0,0 +1,73 @@37 +From aa2f0d1bc82722efe09d0ee0a471058775ff06ab Mon Sep 17 00:00:00 200138 +From: gl0w <gl0w@world>39 +Date: Thu, 10 Sep 2026 07:11:44 +010040 +Subject: [PATCH] m6/entrypoint: POSIX-safe argv (spaces/quotes in41 + name/description)42 +43 +---44 + entrypoint.sh | 31 +++++++++++++++----------------45 + 1 file changed, 15 insertions(+), 16 deletions(-)46 +47 +diff --git a/entrypoint.sh b/entrypoint.sh48 +index 6d4f149..191fbe9 10075549 +--- a/entrypoint.sh50 ++++ b/entrypoint.sh51 +@@ -26,40 +26,39 @@ set -eu52 + # build below would misreport "branch not found".53 + git config --global --add safe.directory /data/repo54 + 55 +-BUILD_ARGS=""56 ++# Build argv with "$@" (POSIX-safe: values with spaces/quotes survive).57 ++set -- /data/repo -o /srv/www58 + if [ -n "${HU13_BRANCH:-}" ]; then59 +- BUILD_ARGS="$BUILD_ARGS --branch $HU13_BRANCH"60 ++ set -- "$@" --branch "$HU13_BRANCH"61 + fi62 + if [ -n "${HU13_CLONE_URL:-}" ]; then63 +- BUILD_ARGS="$BUILD_ARGS --clone-url $HU13_CLONE_URL"64 ++ set -- "$@" --clone-url "$HU13_CLONE_URL"65 + fi66 + if [ -n "${HU13_REPO_NAME:-}" ]; then67 +- BUILD_ARGS="$BUILD_ARGS --repo-name $HU13_REPO_NAME"68 ++ set -- "$@" --repo-name "$HU13_REPO_NAME"69 + fi70 + if [ -n "${HU13_DESCRIPTION:-}" ]; then71 +- BUILD_ARGS="$BUILD_ARGS --description $HU13_DESCRIPTION"72 ++ set -- "$@" --description "$HU13_DESCRIPTION"73 + fi74 ++hu13 build "$@"75 + 76 +-# shellcheck disable=SC208677 +-hu13 build /data/repo -o /srv/www $BUILD_ARGS78 ++set -- --www /srv/www --inbox-dir /data/inbox \79 ++ --listen "${HU13_LISTEN:-0.0.0.0:39313}"80 + 81 +-SERVE_ARGS=""82 + if [ -n "${HU13_MAX_TITLE:-}" ]; then83 +- SERVE_ARGS="$SERVE_ARGS --max-title $HU13_MAX_TITLE"84 ++ set -- "$@" --max-title "$HU13_MAX_TITLE"85 + fi86 + if [ -n "${HU13_MAX_BODY:-}" ]; then87 +- SERVE_ARGS="$SERVE_ARGS --max-body $HU13_MAX_BODY"88 ++ set -- "$@" --max-body "$HU13_MAX_BODY"89 + fi90 + if [ -n "${HU13_MAX_BYTES:-}" ]; then91 +- SERVE_ARGS="$SERVE_ARGS --max-bytes $HU13_MAX_BYTES"92 ++ set -- "$@" --max-bytes "$HU13_MAX_BYTES"93 + fi94 + if [ -n "${HU13_RATE_PER_HOUR:-}" ]; then95 +- SERVE_ARGS="$SERVE_ARGS --rate-per-hour $HU13_RATE_PER_HOUR"96 ++ set -- "$@" --rate-per-hour "$HU13_RATE_PER_HOUR"97 + fi98 + if [ -n "${HU13_QUOTA:-}" ]; then99 +- SERVE_ARGS="$SERVE_ARGS --quota $HU13_QUOTA"100 ++ set -- "$@" --quota "$HU13_QUOTA"101 + fi102 + 103 +-# shellcheck disable=SC2086104 +-exec hu13 serve --www /srv/www --inbox-dir /data/inbox \105 +- --listen "${HU13_LISTEN:-0.0.0.0:39313}" $SERVE_ARGS106 ++exec hu13 serve "$@"107 +-- 108 +2.55.0109 +110 diff --git a/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/pr.md b/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/pr.md111 new file mode 100644112 index 0000000..43d0194113 --- /dev/null114 +++ b/.forge/prs/c1de23b1-1f96-42ea-8661-9468abf6409a/pr.md115 @@ -0,0 +1,12 @@116 +---117 +id: c1de23b1-1f96-42ea-8661-9468abf6409a118 +title: m6/entrypoint-quote119 +state: open120 +base: master121 +head: m6/entrypoint-quote122 +draft: false123 +issues: []124 +ci: fail125 +created: 2026-09-10T06:11:44.052625600Z126 +updated: 2026-09-10T06:11:56.573743204Z127 +---128 diff --git a/tests/header_config.rs b/tests/header_config.rs129 index ef81f20..374d829 100644130 --- a/tests/header_config.rs131 +++ b/tests/header_config.rs132 @@ -271,8 +271,10 @@ fn entrypoint_and_dockerfile_pass_both_envs() {133 for needle in [134 "HU13_REPO_NAME",135 "HU13_DESCRIPTION",136 - "--repo-name $HU13_REPO_NAME",137 - "--description $HU13_DESCRIPTION",138 + "--repo-name",139 + "--description",140 + "\"$HU13_REPO_NAME\"",141 + "\"$HU13_DESCRIPTION\"",142 ] {143 assert!(ep.contains(needle), "entrypoint passes {needle}");144 }145 -- 146 2.55.0147