mirror of
https://github.com/casjaysdevdocker/gitea
synced 2026-08-14 14:01:17 -04:00
🐛 Fix __format_variables returning a single space for empty input 🐛
App-breaking bug found during full runtime verification of the act_runner cache-server feature: gitea failed to start with `Command error: unknown command: /config/gitea/app.ini` because its `--port` argument was empty. Root cause: `__format_variables()` ran `printf '%s\n' $input | sort -Ru | tr '\n' ' '` unconditionally. When `$input` word-splits to zero words (whitespace-only, e.g. no port env vars set), `printf` with a `%s` format still runs once with a missing arg, emitting a blank line — so the function returned a single space `" "` instead of empty. That made `ENV_PORTS` / `WEB_SERVER_PORTS` resolve to `" "`, which made `SERVICE_PORT` in `08-gitea.sh` become `" "` — non-empty per `[ -n ... ]` but rendering as an empty `--port` value to `gitea web`. - rootfs/usr/local/etc/docker/functions/entrypoint.sh: replaced `[ -z "$input" ] && return 0` with `[[ "$input" =~ [^[:space:]] ]] || return 0` so whitespace-only input is treated as empty before reaching the `printf` pipeline - TODO.AI.md: logged the fix and the upstream-template-sync follow-up Verified: rebuilt the image and confirmed `gitea will be running on port 80` / `gitea web --port 80 ...` in a full container run (previously `--port` with no value).
This commit is contained in:
@@ -186,7 +186,7 @@ __get_pid() {
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
__format_variables() {
|
||||
local input="${*//,/ }"
|
||||
[ -z "$input" ] && return 0
|
||||
[[ "$input" =~ [^[:space:]] ]] || return 0
|
||||
printf '%s\n' $input | sort -Ru | tr '\n' ' '
|
||||
}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
Reference in New Issue
Block a user