1 Commits
Author SHA1 Message Date
hacker07 f010dc2cf2 feat(install): support private Gitea credentials (TACHYON_GITEA_USER/TOKEN) for API and downloads
Differential ShellCheck / Differential ShellCheck (push) Failing after 16s
2026-09-17 17:10:12 +03:00
+34 -4
View File
@@ -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