From 52db785f8b3346f517d45af4e3c562c8e58b1258 Mon Sep 17 00:00:00 2001 From: Michael Jerger Date: Wed, 6 Mar 2024 11:37:58 +0100 Subject: [PATCH] first steps with bb --- bb.edn | 2 ++ dda-devops-build.sh | 6 ++++++ deps.edn | 3 +++ src/main/clj/dda/devops_build/main.clj | 17 +++++++++++++++++ 4 files changed, 28 insertions(+) create mode 100644 bb.edn create mode 100755 dda-devops-build.sh create mode 100644 deps.edn create mode 100644 src/main/clj/dda/devops_build/main.clj diff --git a/bb.edn b/bb.edn new file mode 100644 index 0000000..7aab2e1 --- /dev/null +++ b/bb.edn @@ -0,0 +1,2 @@ +{:deps {dda/dda-devops-build {:local/root "."}}} + diff --git a/dda-devops-build.sh b/dda-devops-build.sh new file mode 100755 index 0000000..e2455dc --- /dev/null +++ b/dda-devops-build.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bb + +(require '[dda.devops-build.main :as build]) + +(when (= *file* (System/getProperty "babashka.file")) + (apply build/-main *command-line-args*)) \ No newline at end of file diff --git a/deps.edn b/deps.edn new file mode 100644 index 0000000..d076d5a --- /dev/null +++ b/deps.edn @@ -0,0 +1,3 @@ +{:paths ["src/main/clj"] + :deps {org.clojure/spec.alpha {:mvn/version "0.4.233"} + orchestra {:mvn/version "2021.01.01-1"}}} \ No newline at end of file diff --git a/src/main/clj/dda/devops_build/main.clj b/src/main/clj/dda/devops_build/main.clj new file mode 100644 index 0000000..36c2f02 --- /dev/null +++ b/src/main/clj/dda/devops_build/main.clj @@ -0,0 +1,17 @@ +(ns dda.devops-build.main) +(require '[clojure.spec.alpha :as s]) + +(s/def ::options (s/* #{"-h"})) +(s/def ::cmd-args (s/cat :options ::options + :args any?)) + +(defn invalid-args-msg + [spec args] + (s/explain spec args) + (println (str "Bad commandline arguments\n"))) + +(defn -main [& cmd-args] + (let [parsed-args-cmd (s/conform ::cmd-args cmd-args)] + (if (= ::s/invalid parsed-args-cmd) + (invalid-args-msg ::cmd-args cmd-args) + (println parsed-args-cmd)))) \ No newline at end of file