Skip to content

Instantly share code, notes, and snippets.

@borkdude
Last active April 13, 2021 13:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save borkdude/abbd344734cb2607ecc74bb81f8866ee to your computer and use it in GitHub Desktop.
Save borkdude/abbd344734cb2607ecc74bb81f8866ee to your computer and use it in GitHub Desktop.
Babashka script that invokes -X clj-new/create
;; Usage:
;; bb new.clj -t luminus -n foobar/baz --force +h2
(require '[babashka.deps :as deps]
'[clojure.tools.cli :refer [parse-opts]])
(def deps '{:deps {com.github.seancorfield/clj-new
{:mvn/version "1.1.297"}}})
(def cli-opts [["-t" "--template NAME" "template"]
["-n" "--name NAME" "name"]
["-f" "--force" "force"]])
(defn map->seq [m]
(reduce concat m))
(let [{:keys [:options :arguments]} (parse-opts *command-line-args* cli-opts)]
(-> (deps/clojure (cond->
(into ["-Sdeps" (str deps) "-X" "clj-new/create"]
(map->seq options))
(seq arguments) (conj ":args" (str arguments)))
{:inherit true})
deref
:exit
(System/exit)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment