#!/usr/bin/with-contenv bash
# UMT 浏览器桌面:在 linuxserver 的 init-selkies-config 之后、Selkies/桌面启动之前执行(root)。
# 1) Selkies 双口令:由 CAMOFOX_ACCESS_KEY 经 HMAC 派生(app 用同一算法),不另设密钥;
# 2) labwc autostart 每次覆盖(只起可选 fcitx5,不起终端等其它应用);
# 3) 登录状态目录(与旧 camofox 镜像同一个卷 /root/.camofox)交给运行用户 abc。
set -e
ENVDIR=/run/s6/container_environment
derive() { printf '%s' "$1" | openssl dgst -sha256 -hmac "$CAMOFOX_ACCESS_KEY" -r | cut -c1-48; }
if [ -n "${CAMOFOX_ACCESS_KEY}" ]; then
  printf '%s' "$(derive umt-desktop/control)" > "$ENVDIR/SELKIES_BASIC_AUTH_PASSWORD"
  printf '%s' "$(derive umt-desktop/view)" > "$ENVDIR/SELKIES_BASIC_AUTH_VIEWONLY_PASSWORD"
else
  echo "[umt-desktop] CAMOFOX_ACCESS_KEY 未设置:桌面口令随机生成,app 无法接入桌面模式(原站视图回退截图模式)"
  printf '%s' "$(openssl rand -hex 24)" > "$ENVDIR/SELKIES_BASIC_AUTH_PASSWORD"
  printf '%s' "$(openssl rand -hex 24)" > "$ENVDIR/SELKIES_BASIC_AUTH_VIEWONLY_PASSWORD"
fi
# 口令只经 Selkies 自己的 basic auth 校验;nginx 层不开(设 PASSWORD 会让 nginx 只认单口令,拦掉只读口令)
printf 'true' > "$ENVDIR/SELKIES_ENABLE_BASIC_AUTH"
rm -f "$ENVDIR/PASSWORD" "$ENVDIR/PASSWD"

LABWC_DIR="$HOME/.config/labwc"
mkdir -p "$LABWC_DIR"
cp /defaults/autostart_wayland "$LABWC_DIR/autostart"
chown root:abc "$LABWC_DIR/autostart"
chmod 550 "$LABWC_DIR/autostart"

PROFILE_ROOT="$(dirname "${CAMOFOX_PROFILE_DIR:-/root/.camofox/profiles}")"
mkdir -p "${CAMOFOX_PROFILE_DIR:-/root/.camofox/profiles}"
chown -R abc:abc "$PROFILE_ROOT"
# 登录状态含站点 Cookie:目录 0700、文件 0600(旧镜像落盘的是 0644)
chmod -R go-rwx "$PROFILE_ROOT"
chmod 711 /root
