release: sync public installer asset install.sh
This commit is contained in:
+38
-16
@@ -343,6 +343,37 @@ run_visible_logged() {
|
||||
"$@" 2>&1 | tee -a "$INSTALL_LOG"
|
||||
return "${PIPESTATUS[0]}"
|
||||
}
|
||||
start_app_after_migration() {
|
||||
local helper="$INSTALL_TMP_DIR/start-app-after-migration.sh"
|
||||
cat >"$helper" <<'START_APP_HELPER'
|
||||
#!/usr/bin/env bash
|
||||
set +e
|
||||
|
||||
install_dir=$1
|
||||
install_log=$2
|
||||
shift 2
|
||||
tty_out=${XYMEDIA_INSTALL_TEST_TTY_OUTPUT:-/dev/tty}
|
||||
emit() {
|
||||
printf '%s\n' "$1"
|
||||
printf '%s\n' "$1" >>"$install_log" 2>/dev/null || true
|
||||
printf '%s\n' "$1" >>"$tty_out" 2>/dev/null || true
|
||||
}
|
||||
|
||||
emit '正在启动 XyMediaVault 应用...'
|
||||
|
||||
if "$@" >>"$install_log" 2>&1; then
|
||||
app_rc=0
|
||||
else
|
||||
app_rc=$?
|
||||
fi
|
||||
emit "应用启动命令退出码:$app_rc"
|
||||
return_code=$app_rc
|
||||
exit "$return_code"
|
||||
START_APP_HELPER
|
||||
chmod 700 "$helper" 2>/dev/null || true
|
||||
bash "$helper" "$INSTALL_DIR" "$INSTALL_LOG" "$@"
|
||||
return $?
|
||||
}
|
||||
if [[ ${XYMEDIA_INSTALL_TEST_POST_MIGRATION_ONLY:-0} == 1 ]]; then
|
||||
INSTALL_DIR=${XYMEDIA_INSTALL_DIR:-$PWD}
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
@@ -355,17 +386,13 @@ if [[ ${XYMEDIA_INSTALL_TEST_POST_MIGRATION_ONLY:-0} == 1 ]]; then
|
||||
migration_rc=0
|
||||
printf '数据库迁移退出码:%s\n' "$migration_rc"
|
||||
printf '数据库迁移退出码:%s\n' "$migration_rc" >>"$INSTALL_LOG"
|
||||
printf '[安装流程] 已完成数据库迁移,继续启动应用\n'
|
||||
printf '[安装流程] 已完成数据库迁移,继续启动应用\n' >>"$INSTALL_LOG"
|
||||
printf '数据库初始化完成\n'
|
||||
printf '数据库初始化完成\n' >>"$INSTALL_LOG"
|
||||
printf '正在启动 XyMediaVault 应用...\n'
|
||||
progress '启动 XyMediaVault 服务' || true
|
||||
if "${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" "${COMPOSE_FUSE[@]}" up -d app; then
|
||||
app_start_rc=0
|
||||
else
|
||||
start_app_after_migration "${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" "${COMPOSE_FUSE[@]}" up -d app
|
||||
app_start_rc=$?
|
||||
fi
|
||||
printf '应用启动命令退出码:%s\n' "$app_start_rc"
|
||||
printf '应用启动命令退出码:%s\n' "$app_start_rc" >>"$INSTALL_LOG"
|
||||
if (( app_start_rc != 0 )); then
|
||||
persist_installer_log || true
|
||||
printf 'XyMediaVault 启动失败(退出码:%s)\n' "$app_start_rc" >&2
|
||||
@@ -1107,7 +1134,6 @@ if [[ -n $MENU_PROFILES ]]; then
|
||||
if [[ $MENU_PROFILES == *xiaoya-control* ]]; then
|
||||
controller_state=$(docker inspect --format '{{.State.Status}}' xymedia-controller 2>>"$INSTALL_LOG" || true)
|
||||
[[ $controller_state == running ]] || die '本机小雅控制器未正常运行'
|
||||
printf '小雅控制器已启动:xymedia-controller:19090;管理平台配置将在数据库初始化完成后自动写入。\n'
|
||||
fi
|
||||
fi
|
||||
progress '下载 bootstrap runtime'
|
||||
@@ -1221,6 +1247,8 @@ run_migration
|
||||
migration_rc=$?
|
||||
printf '数据库迁移退出码:%s\n' "$migration_rc"
|
||||
printf '数据库迁移退出码:%s\n' "$migration_rc" >>"$INSTALL_LOG"
|
||||
printf '[安装流程] 已完成数据库迁移,继续启动应用\n'
|
||||
printf '[安装流程] 已完成数据库迁移,继续启动应用\n' >>"$INSTALL_LOG"
|
||||
if [[ $migration_rc -ne 0 ]]; then
|
||||
exit_code=1
|
||||
persist_installer_log || true
|
||||
@@ -1233,15 +1261,9 @@ if [[ $migration_rc -ne 0 ]]; then
|
||||
fi
|
||||
printf '数据库初始化完成\n'
|
||||
printf '数据库初始化完成\n' >>"$INSTALL_LOG"
|
||||
printf '正在启动 XyMediaVault 应用...\n'
|
||||
progress '启动 XyMediaVault 服务' || true
|
||||
if "${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" "${COMPOSE_FUSE[@]}" up -d app; then
|
||||
app_start_rc=0
|
||||
else
|
||||
app_start_rc=$?
|
||||
fi
|
||||
printf '应用启动命令退出码:%s\n' "$app_start_rc"
|
||||
printf '应用启动命令退出码:%s\n' "$app_start_rc" >>"$INSTALL_LOG"
|
||||
start_app_after_migration "${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" "${COMPOSE_FUSE[@]}" up -d app
|
||||
app_start_rc=$?
|
||||
if (( app_start_rc != 0 )); then
|
||||
exit_code=1
|
||||
persist_installer_log || true
|
||||
|
||||
Reference in New Issue
Block a user