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
|
||||
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
|
||||
IFS=$'\t' read -r controller_version controller_url < <(artifact controller "$PLATFORM") || die '公开目录没有当前架构的 controller 制品'
|
||||
progress "下载小雅控制器 $controller_version ($PLATFORM)"
|
||||
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)
|
||||
[[ -n $edge ]] || die 'controller archive lacks executable xymedia-edge'
|
||||
mkdir -p "$INSTALL_DIR/controller"
|
||||
cp "$edge" "$INSTALL_DIR/controller/xymedia-edge"
|
||||
chmod 755 "$INSTALL_DIR/controller/xymedia-edge"
|
||||
install_controller_binary "$edge"
|
||||
[[ -s "$INSTALL_DIR/secrets/xiaoya-controller-token" ]] || write_controller_token
|
||||
cp "$COMPOSE_TEMPLATE" "$INSTALL_DIR/compose.yaml"
|
||||
progress '启动小雅控制器'
|
||||
@@ -593,9 +605,7 @@ download_extract app "$APP_VERSION" "$APP_URL" "$APP_STAGE"
|
||||
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"
|
||||
if [[ -x $APP_ROOT/bin/xymedia-edge ]]; then
|
||||
mkdir -p "$INSTALL_DIR/controller"
|
||||
cp "$APP_ROOT/bin/xymedia-edge" "$INSTALL_DIR/controller/xymedia-edge"
|
||||
chmod 755 "$INSTALL_DIR/controller/xymedia-edge"
|
||||
install_controller_binary "$APP_ROOT/bin/xymedia-edge"
|
||||
fi
|
||||
mkdir -p "$INSTALL_DIR/releases/releases"
|
||||
[[ ! -e "$INSTALL_DIR/releases/releases/$APP_VERSION" ]] && mv "$APP_ROOT" "$INSTALL_DIR/releases/releases/$APP_VERSION"
|
||||
|
||||
Reference in New Issue
Block a user