# 메뉴 노출 제어 격리 실측 스택 공통 설정. 다른 스크립트가 source 한다. 산출 · 비밀은 전부 이 폴더(L) 아래에만 쓴다.
WT=/home/madsc/work/insuniverse-temp/.worktrees/release-control
L=$WT/.local/live
SRV=$WT/insuniverse-server
ADM=$WT/insuniverse-admin
SITE=$WT/insuniverse-site/front

DB_NAME=rc-live-mysql
REDIS_NAME=rc-live-redis
DB_PORT=13444      # 127.0.0.1 에만 연다
REDIS_PORT=16444
SRV_PORT=7244
ADM_PORT=5444
SITE_PORT=5445
UNITS="rc-live-srv rc-live-adm rc-live-site"

unit_run() { # 이름 작업폴더 명령...
  local name=$1 wd=$2; shift 2
  systemd-run --user --unit="$name" --working-directory="$wd" --collect --setenv=PATH="$PATH" \
    -p MemoryMax=3G -p MemorySwapMax=0 \
    -p StandardOutput="append:$L/logs/$name.log" -p StandardError="append:$L/logs/$name.log" \
    "$@" >/dev/null
}
unit_active() { systemctl --user is-active --quiet "$1.service"; }
port_listening() { ss -Hltn "sport = :$1" | grep -q .; }
wait_http() {
  local url=$1 secs=$2 i
  for i in $(seq 1 "$secs"); do
    curl -s -o /dev/null --max-time 2 "$url" && return 0
    sleep 1
  done
  return 1
}
q1() { docker exec -i -e MYSQL_PWD "$DB_NAME" mysql -h127.0.0.1 -uroot --default-character-set=utf8mb4 -N -B insuniverse "$@"; }
