Skip to content

Commit dad8337

Browse files
committed
refactor: manage controller secret via env instead of mixin
1 parent fa13774 commit dad8337

2 files changed

Lines changed: 16 additions & 41 deletions

File tree

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ bash install.sh
6363
clashctl use 💱 切换订阅
6464
clashctl ls 📡 查看订阅列表
6565
🔐 密钥管理
66-
clashctl secret show 🔑 查看密钥
67-
clashctl secret set 🔐 设置密钥
66+
clashctl secret 🔑 查看密钥
67+
clashctl secret 123 🔐 设置密钥
6868
📌 高级
6969
clashctl tun 🧪 Tun 模式管理
7070
clashctl boot 🚦 开机代理接管管理
@@ -108,7 +108,7 @@ $ clashsecret
108108
```
109109
110110
- 可通过浏览器打开 `Web` 控制台进行可视化操作,例如切换节点、查看日志等。
111-
- `clashctl secret` 作为兼容入口继续保留,日常优先使用 `clashsecret`
111+
- `clashctl secret` `clashsecret` 都支持无参数查看、有参数直接设置
112112
- 默认使用 [zashboard](https://github.com/Zephyruso/zashboard) 作为控制台前端,如需更换可自行配置。
113113
- 若需将控制台暴露到公网,建议定期更换访问密钥,或通过 `SSH` 端口转发方式进行安全访问。
114114

scripts/core/clashctl.sh

Lines changed: 13 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Usage:
3434
3535
🕹️ Control:
3636
clashui 🕹️ 查看 Web 控制台
37-
secret 🔑 管理 Web 密钥(show / set)
37+
secret 🔑 查看或设置 Web 密钥
3838
clashsecret 🔑 查看或设置 Web 密钥
3939
4040
🩺 Diagnose:
@@ -3899,7 +3899,7 @@ cmd_mixin_show() {
38993899
else
39003900
cat "$file"
39013901
if mixin_config_has_secret_override "$file"; then
3902-
ui_warn "检测到 override.secret:该字段已忽略,请改用 clashctl secret set"
3902+
ui_warn "检测到 override.secret:该字段已忽略,请改用 clashctl secret <密钥>"
39033903
fi
39043904
fi
39053905
ui_blank
@@ -4589,44 +4589,19 @@ cmd_secret() {
45894589

45904590
prepare
45914591

4592-
case "${1:-}" in
4593-
""|show)
4594-
[ "$#" -le 1 ] || die_usage "secret show 参数不合法" "clashctl secret show"
4595-
show_controller_secret_from_env
4596-
;;
4597-
set)
4598-
shift || true
4599-
[ "$#" -le 1 ] || die_usage "secret set 参数不合法" "clashctl secret set [密钥]"
4600-
new_secret="${1:-}"
4601-
[ -n "${new_secret:-}" ] || new_secret="$(generate_secure_secret)"
4602-
set_controller_secret "$new_secret"
4592+
if [ "$#" -eq 0 ]; then
4593+
show_controller_secret_from_env
4594+
return 0
4595+
fi
46034596

4604-
synced="true"
4605-
sync_runtime_controller_secret_from_env || synced="false"
4606-
print_controller_secret_apply_feedback "$synced"
4607-
;;
4608-
help|-h|--help)
4609-
echo
4610-
echo "🔑 控制器密钥"
4611-
echo
4612-
echo "用法:"
4613-
echo " clashctl secret show"
4614-
echo " clashctl secret set [密钥]"
4615-
echo
4616-
echo "兼容:"
4617-
echo " clashctl secret [密钥]"
4618-
echo " clashsecret [密钥]"
4619-
echo
4620-
;;
4621-
*)
4622-
new_secret="$1"
4623-
set_controller_secret "$new_secret"
4597+
[ "$#" -eq 1 ] || die_usage "secret 参数不合法" "clashctl secret <密钥>"
46244598

4625-
synced="true"
4626-
sync_runtime_controller_secret_from_env || synced="false"
4627-
print_controller_secret_apply_feedback "$synced"
4628-
;;
4629-
esac
4599+
new_secret="$1"
4600+
set_controller_secret "$new_secret"
4601+
4602+
synced="true"
4603+
sync_runtime_controller_secret_from_env || synced="false"
4604+
print_controller_secret_apply_feedback "$synced"
46304605
}
46314606

46324607
cmd_tun_status() {

0 commit comments

Comments
 (0)