release: sync public installer asset install.sh
This commit is contained in:
+16
-6
@@ -570,15 +570,27 @@ with tarfile.open(archive, 'r:*') as tf:
|
|||||||
PY
|
PY
|
||||||
rm -f "$tarball"
|
rm -f "$tarball"
|
||||||
}
|
}
|
||||||
|
install_controller_binary() {
|
||||||
|
local source=$1 target="$INSTALL_DIR/controller/xymedia-edge" staged
|
||||||
|
mkdir -p "$INSTALL_DIR/controller"
|
||||||
|
staged=$(mktemp "$INSTALL_DIR/controller/.xymedia-edge.XXXXXX") || die '无法准备控制器更新文件'
|
||||||
|
chmod 600 "$staged"
|
||||||
|
if ! cp "$source" "$staged"; then rm -f "$staged"; die '控制器文件复制失败'; fi
|
||||||
|
chmod 755 "$staged"
|
||||||
|
if [[ -e $target ]] && docker container inspect xymedia-controller >/dev/null 2>&1; then
|
||||||
|
run_logged "${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" stop xiaoya-control || { rm -f "$staged"; die '无法停止旧的小雅控制器'; }
|
||||||
|
fi
|
||||||
|
[[ ! -L $target ]] || { rm -f "$staged"; die '控制器文件不能是符号链接'; }
|
||||||
|
if ! mv -f "$staged" "$target"; then rm -f "$staged"; die '控制器文件替换失败'; fi
|
||||||
|
chmod 755 "$target"
|
||||||
|
}
|
||||||
if (( CONTROLLER_ONLY )); then
|
if (( CONTROLLER_ONLY )); then
|
||||||
IFS=$'\t' read -r controller_version controller_url < <(artifact controller "$PLATFORM") || die '公开目录没有当前架构的 controller 制品'
|
IFS=$'\t' read -r controller_version controller_url < <(artifact controller "$PLATFORM") || die '公开目录没有当前架构的 controller 制品'
|
||||||
progress "下载小雅控制器 $controller_version ($PLATFORM)"
|
progress "下载小雅控制器 $controller_version ($PLATFORM)"
|
||||||
download_extract controller "$controller_version" "$controller_url" "$INSTALL_DIR/controller-stage"
|
download_extract controller "$controller_version" "$controller_url" "$INSTALL_DIR/controller-stage"
|
||||||
edge=$(find "$INSTALL_DIR/controller-stage" -type f -name xymedia-edge -perm -u+x -print -quit)
|
edge=$(find "$INSTALL_DIR/controller-stage" -type f -name xymedia-edge -perm -u+x -print -quit)
|
||||||
[[ -n $edge ]] || die 'controller archive lacks executable xymedia-edge'
|
[[ -n $edge ]] || die 'controller archive lacks executable xymedia-edge'
|
||||||
mkdir -p "$INSTALL_DIR/controller"
|
install_controller_binary "$edge"
|
||||||
cp "$edge" "$INSTALL_DIR/controller/xymedia-edge"
|
|
||||||
chmod 755 "$INSTALL_DIR/controller/xymedia-edge"
|
|
||||||
[[ -s "$INSTALL_DIR/secrets/xiaoya-controller-token" ]] || write_controller_token
|
[[ -s "$INSTALL_DIR/secrets/xiaoya-controller-token" ]] || write_controller_token
|
||||||
cp "$COMPOSE_TEMPLATE" "$INSTALL_DIR/compose.yaml"
|
cp "$COMPOSE_TEMPLATE" "$INSTALL_DIR/compose.yaml"
|
||||||
progress '启动小雅控制器'
|
progress '启动小雅控制器'
|
||||||
@@ -593,9 +605,7 @@ download_extract app "$APP_VERSION" "$APP_URL" "$APP_STAGE"
|
|||||||
APP_ROOT="$APP_STAGE/xymediavault-$APP_VERSION-$PLATFORM"
|
APP_ROOT="$APP_STAGE/xymediavault-$APP_VERSION-$PLATFORM"
|
||||||
[[ -x $APP_ROOT/bin/xymediavault && -x $APP_ROOT/bin/xymedia-supervisor && -d $APP_ROOT/web/dist && -f $APP_ROOT/release.json ]] || die "app package $APP_VERSION lacks the required xymedia-supervisor; use a newer public app package"
|
[[ -x $APP_ROOT/bin/xymediavault && -x $APP_ROOT/bin/xymedia-supervisor && -d $APP_ROOT/web/dist && -f $APP_ROOT/release.json ]] || die "app package $APP_VERSION lacks the required xymedia-supervisor; use a newer public app package"
|
||||||
if [[ -x $APP_ROOT/bin/xymedia-edge ]]; then
|
if [[ -x $APP_ROOT/bin/xymedia-edge ]]; then
|
||||||
mkdir -p "$INSTALL_DIR/controller"
|
install_controller_binary "$APP_ROOT/bin/xymedia-edge"
|
||||||
cp "$APP_ROOT/bin/xymedia-edge" "$INSTALL_DIR/controller/xymedia-edge"
|
|
||||||
chmod 755 "$INSTALL_DIR/controller/xymedia-edge"
|
|
||||||
fi
|
fi
|
||||||
mkdir -p "$INSTALL_DIR/releases/releases"
|
mkdir -p "$INSTALL_DIR/releases/releases"
|
||||||
[[ ! -e "$INSTALL_DIR/releases/releases/$APP_VERSION" ]] && mv "$APP_ROOT" "$INSTALL_DIR/releases/releases/$APP_VERSION"
|
[[ ! -e "$INSTALL_DIR/releases/releases/$APP_VERSION" ]] && mv "$APP_ROOT" "$INSTALL_DIR/releases/releases/$APP_VERSION"
|
||||||
|
|||||||
Reference in New Issue
Block a user