rewrite to hiccup

This commit is contained in:
Michiel Borkent 2021-03-25 11:09:22 +01:00
parent f7457e64d2
commit 6e58278f9d

View file

@ -84,6 +84,17 @@
(def bb-edn (def bb-edn
(atom nil)) (atom nil))
(defn decode-task [task]
(let [task-key (first task)
args (rest task)
maybe-opts (first args)]
(if (map? maybe-opts)
{:task task-key
:opts maybe-opts
:args (rest args)}
{:task task-key
:args args})))
(defn print-help [ctx command-line-args] (defn print-help [ctx command-line-args]
(if (empty? command-line-args) (if (empty? command-line-args)
(do (do
@ -141,8 +152,9 @@ Use -- to separate script command line args from bb command line args.
(let [k (first command-line-args) (let [k (first command-line-args)
k (keyword (subs k 1)) k (keyword (subs k 1))
task (get-in @bb-edn [:tasks k]) task (get-in @bb-edn [:tasks k])
main (:main task) {:keys [:args]} (decode-task task)
help-text (:task/help task)] main (first args)
help-text (:task/help (meta task))]
(if help-text (if help-text
[(println help-text) 0] [(println help-text) 0]
(if main (if main
@ -558,23 +570,24 @@ Use -- to separate script command line args from bb command line args.
opts)))) opts))))
(defn resolve-task [task {:keys [:command-line-args]}] (defn resolve-task [task {:keys [:command-line-args]}]
(case (:task/type task) (let [{:keys [:task :opts :args]} (decode-task task)]
:babashka opts ;; not used
(let [cmd-line-args (get task :task/args)] (case task
(parse-opts (seq (map str (concat cmd-line-args command-line-args))))) :babashka
:shell (let [cmd-line-args args]
(let [args (get task :task/args) (parse-opts (seq (map str (concat cmd-line-args command-line-args)))))
args (into (vec args) command-line-args)] :shell
{:exec (fn [] (let [args (into (vec args) command-line-args)]
[nil {:exec (fn []
(-> (p/process args {:inherit true}) [nil
deref (-> (p/process args {:inherit true})
:exit)])}) deref
:main :exit)])})
(let [main-arg (:main task) :main
cmd-line-args (:task/args task)] (let [main-arg (first args)
(parse-opts (seq (map str (concat ["--main" main-arg] cmd-line-args command-line-args))))) cmd-line-args (rest args)]
(error (str "No such task: " (:task/type task)) 1))) (parse-opts (seq (map str (concat ["--main" main-arg] cmd-line-args command-line-args)))))
(error (str "No such task: " (:task/type task)) 1))))
(def should-load-inits? (def should-load-inits?
"if true, then we should still load preloads and user.clj" "if true, then we should still load preloads and user.clj"