Files

38 lines
2.1 KiB
Clojure

{:deps {tmux-dev/tmux-dev {:git/url "https://gitea.florianschroedl.com/floscr/tmux-dev"
:git/sha "3d9e53bc38b818bfcee312065ded0aef83bdecf4"}}
:tasks
{:requires ([tmux-dev.core :as td] [tmux-dev.env :as env])
:init (do (def port (env/number "PORT" 8090))
(def dev-config {:session "atomsync-dev"
:windows [["server" (str "bb server --port " port)]
["cljs" "bb cljs:watch"]]
:print [(str "App: http://localhost:" port)
(str "Server: http://localhost:" port "/sync")]}))
server {:doc "Start the Atomsync sync server (serves example app)"
:task (shell "clj" "-M:server" "--static-dir" "example/todomvc")}
cljs {:doc "Compile ClojureScript (one-shot)"
:task (shell "clj" "-M:cljs")}
cljs:clean {:doc "Remove compiled CLJS output"
:task (babashka.fs/delete-tree "example/todomvc/js")}
cljs:watch {:doc "Compile ClojureScript (watch mode)"
:depends [cljs:clean]
:task (shell "clj" "-M:cljs-dev")}
test {:doc "Run all server tests"
:task (let [expr (str "(require 'atomsync.db-test 'atomsync.transit-test"
" 'atomsync.server-test 'atomsync.core-test)"
" (let [r (clojure.test/run-all-tests #\"atomsync\\..*\")]"
" (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 (td/start dev-config)}
dev:stop {:doc "Stop dev tmux session" :task (td/stop dev-config)}
dev:restart {:doc "Restart dev tmux session" :task (td/restart dev-config)}
dev:attach {:doc "Attach to dev session" :task (td/attach dev-config)}
dev:logs {:doc "Show dev session logs" :task (td/logs dev-config)}
dev:status {:doc "Show dev session status" :task (td/status dev-config)}}}