#!/bin/sh
# Idempotent workspace migration for zia-forsuryaos (postinst / manual).
# Run as the desktop user: zia-workspace-migrate
# Optional: zia-workspace-migrate /home/someuser

set -e

HOME_DIR="${1:-$HOME}"
if [ -z "$HOME_DIR" ] || [ ! -d "$HOME_DIR" ]; then
  echo "zia-workspace-migrate: invalid home: ${HOME_DIR:-<empty>}" >&2
  exit 1
fi

if [ -d /home/zos ] || [ "$HOME_DIR" = /home/zos ]; then
  WS="/home/zos/.zia-workspace"
else
  WS="${HOME_DIR}/.zia-workspace"
fi

mkdir -p "$WS"

# Migrate legacy ~/.opencode into the dedicated workspace (never use $HOME as project root).
if [ -d "${HOME_DIR}/.opencode" ] && [ ! -d "${WS}/.opencode" ]; then
  cp -a "${HOME_DIR}/.opencode" "${WS}/.opencode"
  echo "zia-workspace-migrate: migrated ${HOME_DIR}/.opencode -> ${WS}/.opencode" >&2
fi

# Remove oversized OpenCode snapshot from when OPENCODE_PROJECT_ROOT was $HOME.
DATA_HOME="${XDG_DATA_HOME:-${HOME_DIR}/.local/share}"
SNAP="${DATA_HOME}/opencode/snapshot"
if [ -d "$SNAP" ]; then
  sz=""
  sz="$(du -sm "$SNAP" 2>/dev/null | awk '{print $1}')" || true
  case "$sz" in
    ''|*[!0-9]*) ;;
    *)
      if [ "$sz" -gt 500 ] 2>/dev/null; then
        rm -rf "$SNAP"
        echo "zia-workspace-migrate: removed ${sz}MB stale opencode snapshot at $SNAP" >&2
      fi
      ;;
  esac
fi

exit 0
