#!/bin/sh
[ -n "${IPKG_INSTROOT}" ] || {
  # 本品牌的目录、程序与 init 脚本都带品牌名（fengwoyun-router）。
  # 旧版本所有品牌共用 /etc/xboard-router 与 /usr/bin/xboard-router，而卸载软件
  # 只会删除包清单里的文件，运行时生成的 state.json 与 runtime/ 会留在路由器上，
  # 因此这里负责：同品牌升级时把旧目录的登录态搬过来，确认没有别的品牌还在用
  # 旧路径时把旧目录清干净。
  BRAND="fengwoyun"
  NEW_DIR=/etc/fengwoyun-router
  OLD_DIR=/etc/xboard-router
  old_brand=$(cat "$OLD_DIR/installed-brand" 2>/dev/null || true)

  # 同品牌升级：旧目录里的登录态搬到品牌目录，用户不用重新登录。
  if [ ! -f "$NEW_DIR/state.json" ] && [ -f "$OLD_DIR/state.json" ] && [ "$old_brand" = "$BRAND" ]; then
    cp -f "$OLD_DIR/state.json" "$NEW_DIR/state.json" 2>/dev/null || true
    if [ -d "$OLD_DIR/runtime" ]; then
      rm -rf "$NEW_DIR/runtime"
      cp -a "$OLD_DIR/runtime" "$NEW_DIR/runtime" 2>/dev/null || true
    fi
    chmod 600 "$NEW_DIR/state.json" 2>/dev/null || true
  fi

  # 旧格式安装（所有品牌共用 /etc/xboard-router）的残留必须清掉，否则换品牌后
  # 上一家的登录态、订阅与端口配置会继续留在路由器上。
  # 同品牌升级时旧 conffile 仍由 opkg 管理，留给 opkg 处理：如果在这里删掉，
  # opkg 随后校验旧文件会报 file_sha256sum_alloc: Failed to open file 这类
  # Collected errors，用户会误以为安装失败。属于别的品牌或来源不明时 opkg
  # 已经不再认这些文件，可以整目录删除。
  if [ ! -e /etc/init.d/xboard-router ]; then
    rm -f /etc/rc.d/*xboard-router
    rm -f "$OLD_DIR/state.json" "$OLD_DIR/installed-brand" "$OLD_DIR/management_port"
    rm -rf "$OLD_DIR/runtime"
    if [ -n "$old_brand" ] && [ "$old_brand" = "$BRAND" ]; then
      rmdir "$OLD_DIR" 2>/dev/null || true
    else
      rm -rf "$OLD_DIR"
    fi
    rmdir /usr/lib/xboard-router /www/luci-static/resources/xboard-openclash /usr/lib/lua/luci/view/xboard-openclash 2>/dev/null || true
  fi

  printf '%s\n' "$BRAND" > "$NEW_DIR/installed-brand"
  /etc/init.d/fengwoyun-router enable
  /etc/init.d/fengwoyun-router restart
  rm -f /tmp/luci-indexcache
  rm -rf /tmp/luci-modulecache
  [ -x /etc/init.d/uhttpd ] && /etc/init.d/uhttpd restart
}
exit 0
