Files
dsh_shenxian/scripts/install-workspace-picker.sh
T

17 lines
1.2 KiB
Bash

#!/usr/bin/env bash
# 安装 @dsh-local/workspace-scoped-picker 指定版本到所有用户 profile(幂等)
set -euo pipefail
TGZ_SRC="${1:?用法: install-wsp.sh <tgz路径>}"
VER=$(basename "$TGZ_SRC" | sed -E 's/^workspace-scoped-picker-(.*)\.tgz$/\1/')
echo "版本: $VER"
for U in cce6d1cd-b376-4304-80f0-0e1c58c9ffde:114801:"" 4092b965-2f68-4977-9989-68b3966f7df0:100002:-w; do
ID=$(echo "$U" | cut -d: -f1); UID_=$(echo "$U" | cut -d: -f2); FLAG=$(echo "$U" | cut -d: -f3)
WS=/var/lib/dshs/users/$ID/ws
PP=/var/lib/dshs/users/$ID/home/profiles/web
cp -f "$TGZ_SRC" "$WS/workspace-scoped-picker-$VER.tgz"
chown "$UID_:$UID_" "$WS/workspace-scoped-picker-$VER.tgz"
( cd "$PP" && setpriv --reuid "$UID_" --regid "$UID_" --clear-groups env HOME="$WS" pnpm add $FLAG "file:$WS/workspace-scoped-picker-$VER.tgz" >/tmp/pnpm-$ID.log 2>&1 ) && echo " [${ID:0:8}] pnpm OK" || { echo " [${ID:0:8}] pnpm FAILED"; tail -3 /tmp/pnpm-$ID.log; }
printf " [%s] lib: " "${ID:0:8}"; ls "$PP/node_modules/@dsh-local/workspace-scoped-picker/lib/" | tr "\n" " "; echo
printf " [%s] version: " "${ID:0:8}"; grep -o '"version": "[^"]*"' "$PP/node_modules/@dsh-local/workspace-scoped-picker/package.json" | head -1
done