blob: acf7f8ba817f56bfdd5d53345569643e16e1d3cd (
plain) (
blame)
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
|
#!/usr/bin/env bb
(require '[clojure.java.shell :refer [sh]])
(defn open-term-win [name cmd args]
(let [kak_session (System/getenv "KAKOUNE_SESSION")
kak_client (System/getenv "KAKOUNE_CLIENT")]
(->
(apply sh "tmux" "new-window" "-n" name
"env" (str "KAKOUNE_SESSION=" kak_session) (str "KAKOUNE_CLIENT=" kak_client)
cmd args)
:exit
(= 0))))
(defn focus-term-win [name]
(-> (sh "tmux" "select-window" "-t" name) :exit (= 0)))
(defn cmd-terminal-singleton [[name cmd & args]]
(if (or (focus-term-win name) (open-term-win name cmd args))
(println "ok")
(println "sorri")))
(def commands
{"singleton" cmd-terminal-singleton})
(let [[cmd & args] *command-line-args*]
(if-let [command-fn (commands cmd)]
(command-fn args)
(binding [*out* *err*]
(println (str "invalid command: " (or cmd "")))
(println (str "Valid commands: " (keys commands))))))
|