From 9ea85cb928724bfe75fc08c8f2095e6f3427a862 Mon Sep 17 00:00:00 2001 From: eltrac Date: Mon, 13 Apr 2026 16:31:18 +0800 Subject: [script] swich proxy babashka script --- QoL/switch-proxy.clj | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 QoL/switch-proxy.clj (limited to 'QoL/switch-proxy.clj') diff --git a/QoL/switch-proxy.clj b/QoL/switch-proxy.clj new file mode 100644 index 0000000..4911b71 --- /dev/null +++ b/QoL/switch-proxy.clj @@ -0,0 +1,33 @@ +#!/usr/bin/env bb + +(require '[clojure.java.shell :refer [sh]] + '[babashka.process :refer [process tokenize]]) + +(defn process-running? [name] + (let [{:keys [exit]} (sh "pgrep" "-x" name)] + (= exit 0))) + +(defn kill-process [name] + (when (process-running? name) + (println (str "Stopping " name "...")) + (sh "pkill" "-x" name))) + +(defn start-daemon [cmd-str] + (println (str "Starting " cmd-str "...")) + (process (tokenize cmd-str) {:out :discard :err :discard :detach true})) + +(let [sb-running (process-running? "sing-box") + mi-running (process-running? "mihomo")] + + (cond + mi-running + (do + (kill-process "mihomo") + (start-daemon "sing-box run -c /Users/eltrac/.config/sing-box/config.json")) + + :else + (do + (kill-process "sing-box") + (start-daemon "mihomo"))) + + (println "Switch complete.")) -- cgit v1.2.3