feat: 一键安装 / 配置向导 / 卸载,并整体优化脚本

安装:
- 新增 install 子命令和菜单第 1 项「一键安装」: 装内核 → 写 systemd →
  跑配置向导 → enable + start,装完打印代理端口 / 面板地址 / 密钥 / 日志命令
- systemd unit 按 MetaCubeX 官方文档写入,旧 unit 内容不同时先备份

配置:
- 新增配置向导,问 7 个问题生成最小可用配置 (订阅 provider、mixed-port、
  allow-lan、external-controller、secret、Web 面板、分流规则)
- 新增「配置管理」菜单: 换订阅 / 改端口 / 局域网共享 / 面板密钥 / URL 导入 /
  校验 / 手动编辑 / 备份还原。每次改动前自动备份,改完 -t 校验,
  不过则询问还原,服务在跑再询问重启

卸载:
- 新增 uninstall 子命令和菜单项: stop + disable + 删 unit 和 drop-in +
  daemon-reload + reset-failed + 删二进制,配置目录和内核备份单独询问
- --purge 全删不问

其它:
- --mirror 支持 GitHub 反代前缀,带 mirror 时生成的配置一并写走镜像的 geox-url
- --service 自定义服务名、--skip-conf-check 跳过升级前的配置预校验
- 服务菜单新增开机自启开关和重写服务文件
- 修复 ask_default 与 ask 的局部变量重名: bash 动态作用域下 printf -v
  写进了 ask 自己的变量,导致向导除默认值外的输入全部丢失
- 修复输入流 EOF 时向导在「订阅不能空」处死循环
- 修复无配置时改端口直接 die 退出菜单、查版本失败 die 掉整个会话、
  --dry-run 被 root 检查提前挡掉等问题
- 生成的 find-process-mode 加引号,避免被解析成布尔值

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpjLPV4JvAsuq9ACb3u6B4
This commit is contained in:
2026-08-09 13:38:27 +08:00
co-authored by Claude Opus 5
parent 9cfff9a3db
commit afa5ae42f1
2 changed files with 929 additions and 148 deletions
+811 -110
View File
File diff suppressed because it is too large Load Diff