feat(install): support private Gitea credentials (TACHYON_GITEA_USER/TOKEN) for API and downloads
Differential ShellCheck / Differential ShellCheck (push) Failing after 16s
Differential ShellCheck / Differential ShellCheck (push) Failing after 16s
This commit is contained in:
+34
-4
@@ -15,6 +15,22 @@ SOURCE_BRANCH="${TACHYON_SOURCE_BRANCH:-main}"
|
||||
SOURCE_URL="${TACHYON_SOURCE_URL:-}"
|
||||
REPO_INSTALL_URL="${TACHYON_REPO_INSTALL_URL:-https://${REPO_HOST}/${REPO_OWNER}/${REPO_NAME}}"
|
||||
|
||||
# Credentials for a private Gitea repository. Provide via TACHYON_GITEA_USER /
|
||||
# TACHYON_GITEA_TOKEN, or embed as userinfo in TACHYON_REPO_INSTALL_URL.
|
||||
GITEA_USER="${TACHYON_GITEA_USER:-}"
|
||||
GITEA_TOKEN="${TACHYON_GITEA_TOKEN:-}"
|
||||
if [ -z "$GITEA_USER" ] && [ -z "$GITEA_TOKEN" ]; then
|
||||
case "$REPO_INSTALL_URL" in
|
||||
*://*@*)
|
||||
_ui="${REPO_INSTALL_URL#*://}"
|
||||
_ui="${_ui%%@*}"
|
||||
GITEA_USER="${_ui%%:*}"
|
||||
GITEA_TOKEN="${_ui#*:}"
|
||||
[ "$GITEA_TOKEN" = "$_ui" ] && GITEA_TOKEN=""
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# ─── TUI helpers (self-contained, no external deps) ─────────────────────────
|
||||
# POSIX-compatible, works with dash/bash/mksh on OpenWrt.
|
||||
# Degrades gracefully when TERM is dumb or stdout is not a terminal.
|
||||
@@ -684,12 +700,19 @@ run_with_deadline() {
|
||||
}
|
||||
|
||||
http_get() {
|
||||
_auth=""
|
||||
if [ -n "$GITEA_USER" ] && [ -n "$GITEA_TOKEN" ]; then
|
||||
case "$FETCHER" in
|
||||
wget) _auth="--user=$GITEA_USER --password=$GITEA_TOKEN" ;;
|
||||
curl) _auth="-u $GITEA_USER:$GITEA_TOKEN" ;;
|
||||
esac
|
||||
fi
|
||||
case "$FETCHER" in
|
||||
wget)
|
||||
run_with_deadline "$METADATA_TIMEOUT_SECONDS" wget -T "$CONNECT_TIMEOUT_SECONDS" -qO- "$1"
|
||||
run_with_deadline "$METADATA_TIMEOUT_SECONDS" wget -T "$CONNECT_TIMEOUT_SECONDS" $_auth -qO- "$1"
|
||||
;;
|
||||
curl)
|
||||
curl --connect-timeout "$CONNECT_TIMEOUT_SECONDS" --speed-limit 1024 --speed-time 15 --max-time "$METADATA_TIMEOUT_SECONDS" -fsSL "$1"
|
||||
curl --connect-timeout "$CONNECT_TIMEOUT_SECONDS" --speed-limit 1024 --speed-time 15 --max-time "$METADATA_TIMEOUT_SECONDS" -fsSL $_auth "$1"
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
@@ -1912,12 +1935,19 @@ install_json_ucode() {
|
||||
}
|
||||
|
||||
download_file_once() {
|
||||
_auth=""
|
||||
if [ -n "$GITEA_USER" ] && [ -n "$GITEA_TOKEN" ]; then
|
||||
case "$FETCHER" in
|
||||
wget) _auth="--user=$GITEA_USER --password=$GITEA_TOKEN" ;;
|
||||
curl) _auth="-u $GITEA_USER:$GITEA_TOKEN" ;;
|
||||
esac
|
||||
fi
|
||||
case "$FETCHER" in
|
||||
wget)
|
||||
run_with_deadline "$DOWNLOAD_TIMEOUT_SECONDS" wget -T "$CONNECT_TIMEOUT_SECONDS" -q -O "$2" "$1"
|
||||
run_with_deadline "$DOWNLOAD_TIMEOUT_SECONDS" wget -T "$CONNECT_TIMEOUT_SECONDS" $_auth -q -O "$2" "$1"
|
||||
;;
|
||||
curl)
|
||||
curl --connect-timeout "$CONNECT_TIMEOUT_SECONDS" --speed-limit 1024 --speed-time 15 --max-time "$DOWNLOAD_TIMEOUT_SECONDS" -fsSL "$1" -o "$2"
|
||||
curl --connect-timeout "$CONNECT_TIMEOUT_SECONDS" --speed-limit 1024 --speed-time 15 --max-time "$DOWNLOAD_TIMEOUT_SECONDS" -fsSL $_auth "$1" -o "$2"
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
|
||||
Reference in New Issue
Block a user