fix(deploy): take the Gitea address for Android updates from git remote
ci / api / api (push) Successful in 22s
ci / db / db (push) Successful in 2m4s
release / release (версия и заметки) (push) Successful in 5s
release / android (APK в релиз) (push) Successful in 4m11s
ci / docker / docker (образы собираются — их сервер собирает сам при обновлении) (push) Successful in 1m33s
ci / api / api (push) Successful in 22s
ci / db / db (push) Successful in 2m4s
release / release (версия и заметки) (push) Successful in 5s
release / android (APK в релиз) (push) Successful in 4m11s
ci / docker / docker (образы собираются — их сервер собирает сам при обновлении) (push) Successful in 1m33s
The server kept the git.example.lan placeholder from .env.example, so the /android page and in-app updates had no release. install.sh and update.sh now fill GITEA_URL and GITEA_REPO from the clone's origin (https, ssh and scp forms, credentials stripped) when they are empty or still the placeholder, and the API treats the placeholder as not configured. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
823d1eb841
commit
66f5749fc1
6 files changed
+78
-6
No files matched your search
@@ -76,6 +76,39 @@ for key in JWT_PRIVATE_KEY STREAM_SIGNING_KEY; do
|
||||
fi
|
||||
done
|
||||
|
||||
# Самообновление Android: адрес Gitea и репозиторий — из origin этого клона, если в .env пусто
|
||||
# или осталась заглушка из .env.example (https://host/owner/repo, git@host:owner/repo, ssh://git@host:port/owner/repo).
|
||||
fill_gitea() {
|
||||
local url repo origin host path
|
||||
url="$(sed -n 's/^GITEA_URL=//p' .env)"
|
||||
repo="$(sed -n 's/^GITEA_REPO=//p' .env)"
|
||||
case "$url" in "" | *example.*) url="" ;; esac
|
||||
case "$repo" in "" | owner/*) repo="" ;; esac
|
||||
[ -n "$url" ] && [ -n "$repo" ] && return 0
|
||||
origin="$(git -c safe.directory='*' remote get-url origin 2>/dev/null || true)"
|
||||
[ -n "$origin" ] || return 0
|
||||
case "$origin" in
|
||||
http://* | https://*)
|
||||
host="$(printf '%s' "$origin" | sed -E 's#^(https?://)([^@/]*@)?([^/]+)/.*#\1\3#')"
|
||||
path="$(printf '%s' "$origin" | sed -E 's#^https?://[^/]+/##')" ;;
|
||||
ssh://*)
|
||||
host="https://$(printf '%s' "$origin" | sed -E 's#^ssh://([^@/]*@)?([^:/]+).*#\2#')"
|
||||
path="$(printf '%s' "$origin" | sed -E 's#^ssh://[^/]+/##')" ;;
|
||||
*:*)
|
||||
host="https://$(printf '%s' "$origin" | sed -E 's#^([^@]*@)?([^:]+):.*#\2#')"
|
||||
path="${origin#*:}" ;;
|
||||
*) return 0 ;;
|
||||
esac
|
||||
path="${path%.git}"
|
||||
[ -n "$url" ] || url="$host"
|
||||
[ -n "$repo" ] || repo="$path"
|
||||
for kv in "GITEA_URL=$url" "GITEA_REPO=$repo"; do
|
||||
if grep -q "^${kv%%=*}=" .env; then sed -i "s|^${kv%%=*}=.*|$kv|" .env; else echo "$kv" >> .env; fi
|
||||
done
|
||||
echo "→ самообновление Android: $url, $repo (из git remote; поменять — в .env)"
|
||||
}
|
||||
fill_gitea
|
||||
|
||||
# LIBRARY_HOST, переданный при повторном запуске, попадает и в уже существующий .env
|
||||
if [ -n "$LIBRARY_HOST" ]; then
|
||||
if grep -q '^LIBRARY_HOST=' .env; then
|
||||
|
||||
Reference in new issue
Block a user