release: sync public installer asset install.sh

This commit is contained in:
2026-09-09 02:00:09 +00:00
parent 6bebe669d4
commit 384dc29208
+7 -7
View File
@@ -1,8 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
CATALOG_URL=${XYMEDIA_CATALOG_URL:-https://git.smoothdu.com/admin/xymediavault-releases/raw/branch/main/catalog-v1.json} CATALOG_URL=${XYMEDIA_CATALOG_URL:-https://git.keeper.work/admin/xymediavault-releases/raw/branch/main/catalog-v1.json}
RELEASE_BASE=${XYMEDIA_RELEASE_BASE:-https://git.smoothdu.com/admin/xymediavault-releases/raw/branch/main} RELEASE_BASE=${XYMEDIA_RELEASE_BASE:-https://git.keeper.work/admin/xymediavault-releases/raw/branch/main}
INSTALL_NONCE=$(date +%s) INSTALL_NONCE=$(date +%s)
SCRIPT_DIR=$(cd -- "$(dirname -- "$0")" && pwd -P) SCRIPT_DIR=$(cd -- "$(dirname -- "$0")" && pwd -P)
INSTALL_DIR=${XYMEDIA_INSTALL_DIR:-$PWD} INSTALL_DIR=${XYMEDIA_INSTALL_DIR:-$PWD}
@@ -320,7 +320,7 @@ url = e.get('asset_url', '')
parsed = urlsplit(url) parsed = urlsplit(url)
try: port = parsed.port try: port = parsed.port
except ValueError: raise SystemExit(1) except ValueError: raise SystemExit(1)
if (parsed.scheme != 'https' or parsed.netloc.lower() != 'git.smoothdu.com' or if (parsed.scheme != 'https' or parsed.netloc.lower() != 'git.keeper.work' or
parsed.username is not None or parsed.password is not None or port is not None or parsed.username is not None or parsed.password is not None or port is not None or
parsed.query or parsed.fragment or '%' in (parsed.path or '') or parsed.query or parsed.fragment or '%' in (parsed.path or '') or
re.fullmatch(r'/api/packages/[^/]+/generic/[^/]+/[A-Za-z0-9][A-Za-z0-9.-]*-[0-9a-fA-F]{12}(?:-[a-z0-9][a-z0-9-]{5,80})?/[^/]+', parsed.path or '') is None): re.fullmatch(r'/api/packages/[^/]+/generic/[^/]+/[A-Za-z0-9][A-Za-z0-9.-]*-[0-9a-fA-F]{12}(?:-[a-z0-9][a-z0-9-]{5,80})?/[^/]+', parsed.path or '') is None):
@@ -1158,7 +1158,7 @@ except ValueError:
raise SystemExit(1) raise SystemExit(1)
if ( if (
parsed.scheme != "https" parsed.scheme != "https"
or parsed.netloc.lower() != "git.smoothdu.com" or parsed.netloc.lower() != "git.keeper.work"
or parsed.username is not None or parsed.username is not None
or parsed.password is not None or parsed.password is not None
or parsed.query or parsed.query
@@ -1194,7 +1194,7 @@ except ValueError:
raise SystemExit(1) raise SystemExit(1)
if ( if (
parsed.scheme != "https" parsed.scheme != "https"
or parsed.netloc.lower() != "git.smoothdu.com" or parsed.netloc.lower() != "git.keeper.work"
or parsed.username is not None or parsed.username is not None
or parsed.password is not None or parsed.password is not None
or parsed.query or parsed.query
@@ -1417,7 +1417,7 @@ if [[ -n $MENU_PROFILES ]]; then
fi fi
progress '下载 bootstrap runtime' progress '下载 bootstrap runtime'
if ! run_logged "${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" "${COMPOSE_FUSE[@]}" pull app; then if ! run_logged "${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" "${COMPOSE_FUSE[@]}" pull app; then
die 'bootstrap runtime 下载失败;请确认能访问 git.smoothdu.com Container Registry' die 'bootstrap runtime 下载失败;请确认能访问 git.keeper.work Container Registry'
fi fi
validate_bootstrap_runtime_platform() { validate_bootstrap_runtime_platform() {
local bootstrap_image_expected bootstrap_image_ref bootstrap_image_id runtime_metadata runtime_platform local bootstrap_image_expected bootstrap_image_ref bootstrap_image_id runtime_metadata runtime_platform
@@ -1425,7 +1425,7 @@ validate_bootstrap_runtime_platform() {
if [[ -z $bootstrap_image_expected && -f $INSTALL_DIR/.env ]]; then if [[ -z $bootstrap_image_expected && -f $INSTALL_DIR/.env ]]; then
bootstrap_image_expected=$(awk -F= '$1 == "XYMEDIA_BOOTSTRAP_IMAGE" {sub(/^[^=]*=/, ""); print; exit}' "$INSTALL_DIR/.env") bootstrap_image_expected=$(awk -F= '$1 == "XYMEDIA_BOOTSTRAP_IMAGE" {sub(/^[^=]*=/, ""); print; exit}' "$INSTALL_DIR/.env")
fi fi
bootstrap_image_expected=${bootstrap_image_expected:-git.smoothdu.com/admin/xymediavault-bootstrap:1} bootstrap_image_expected=${bootstrap_image_expected:-git.keeper.work/admin/xymediavault-bootstrap:1}
bootstrap_image_ref=$("${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" config --images 2>>"$INSTALL_LOG" | awk -v expected="$bootstrap_image_expected" 'NF && $0 == expected {print; exit}') || true bootstrap_image_ref=$("${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" config --images 2>>"$INSTALL_LOG" | awk -v expected="$bootstrap_image_expected" 'NF && $0 == expected {print; exit}') || true
if [[ -z $bootstrap_image_ref ]]; then if [[ -z $bootstrap_image_ref ]]; then
bootstrap_image_id=$("${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" images -q app 2>>"$INSTALL_LOG" | awk 'NF {print; exit}') || true bootstrap_image_id=$("${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" images -q app 2>>"$INSTALL_LOG" | awk 'NF {print; exit}') || true