blob: 4911b71c26829b6c0bc9e83bb3dcc7cb69359aed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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."))
|