38 lines
2.1 KiB
Clojure
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)}}}
|