From d5a0082b672aa9faaa4d5a85419d0f0b5c66fa7c Mon Sep 17 00:00:00 2001 From: Florian Schroedl Date: Sat, 4 Apr 2026 16:48:29 +0200 Subject: [PATCH] chore: add bb.edn task runner Tasks: server, cljs, cljs:watch, test, dev (tmux), dev:stop, dev:restart --- bb.edn | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 bb.edn diff --git a/bb.edn b/bb.edn new file mode 100644 index 0000000..72f088c --- /dev/null +++ b/bb.edn @@ -0,0 +1,34 @@ +{:tasks + {server {:doc "Start the Pocketbook sync server" + :task (shell "clj" "-M:server")} + + cljs {:doc "Compile ClojureScript (one-shot)" + :task (shell "clj" "-M:cljs")} + + cljs:watch {:doc "Compile ClojureScript (watch mode)" + :task (shell "clj" "-M:cljs-dev")} + + test {:doc "Run all server tests" + :task (let [expr (str "(require 'pocketbook.db-test 'pocketbook.transit-test" + " 'pocketbook.server-test 'pocketbook.auth-test)" + " (let [r (clojure.test/run-all-tests #\"pocketbook\\..*\")]" + " (System/exit (if (and (zero? (:fail r)) (zero? (:error r))) 0 1)))")] + (shell "clj" "-M:dev" "-e" expr))} + + dev {:doc "Start server and CLJS watch in tmux" + :task (let [dir (System/getProperty "user.dir")] + (shell {:dir dir} "tmux new-session -d -s pocketbook-dev -n server -c" dir) + (shell {:dir dir} "tmux send-keys -t pocketbook-dev:server" "bb server" "Enter") + (shell {:dir dir} "tmux new-window -t pocketbook-dev -n cljs -c" dir) + (shell {:dir dir} "tmux send-keys -t pocketbook-dev:cljs" "bb cljs:watch" "Enter") + (println "🔶 tmux session 'pocketbook-dev' started") + (println " App: http://localhost:8090") + (println " Server: http://localhost:8090/sync") + (println " Attach: tmux attach -t pocketbook-dev"))} + + dev:stop {:doc "Stop the dev tmux session" + :task (shell "tmux kill-session -t pocketbook-dev")} + + dev:restart {:doc "Restart the dev tmux session" + :task (do (shell {:continue true} "tmux kill-session -t pocketbook-dev") + (run 'dev))}}}