From 2acf9b3bb253576d9275e990f382c19bedf551d1 Mon Sep 17 00:00:00 2001 From: bom Date: Fri, 13 May 2022 14:19:37 +0200 Subject: [PATCH] moved main to uberjar from common ns --- src/main/clj/dda/c4k_common/uberjar.clj | 52 ++++++++++++++++++++++++ src/main/cljc/dda/c4k_common/common.cljc | 51 +---------------------- 2 files changed, 54 insertions(+), 49 deletions(-) create mode 100644 src/main/clj/dda/c4k_common/uberjar.clj diff --git a/src/main/clj/dda/c4k_common/uberjar.clj b/src/main/clj/dda/c4k_common/uberjar.clj new file mode 100644 index 0000000..36ba2f5 --- /dev/null +++ b/src/main/clj/dda/c4k_common/uberjar.clj @@ -0,0 +1,52 @@ +(ns dda.c4k-common.uberjar + (:require + [clojure.spec.alpha :as s] + [clojure.string :as cs] + [clojure.tools.reader.edn :as edn] + [dda.c4k-common.common :as cm] + [expound.alpha :as expound])) + +(defn usage [name] + (str + "usage: + + " name "{your configuraton file} {your authorization file}")) + +(s/def ::options (s/* #{"-h"})) +(s/def ::filename (s/and string? + #(not (cs/starts-with? % "-")))) +(s/def ::cmd-args (s/cat :options ::options + :args (s/? + (s/cat :config ::filename + :auth ::filename)))) + +(defn invalid-args-msg + [name spec args] + (s/explain spec args) + (println (str "Bad commandline arguments\n" (usage name)))) + +(defn main-common [name config-spec? auth-spec? config-defaults k8s-objects cmd-args] + (let [parsed-args-cmd (s/conform ::cmd-args cmd-args)] + (if (= ::s/invalid parsed-args-cmd) + (invalid-args-msg name ::cmd-args cmd-args) + (let [{:keys [options args]} parsed-args-cmd + {:keys [config auth]} args] + (cond + (some #(= "-h" %) options) + (println usage) + :else + (let [config-str (slurp config) + auth-str (slurp auth) + config-edn (edn/read-string config-str) + auth-edn (edn/read-string auth-str) + config-valid? (s/valid? config-spec? config-edn) + auth-valid? (s/valid? auth-spec? auth-edn)] + (if (and config-valid? auth-valid?) + (println (cm/generate-common config-edn auth-edn config-defaults k8s-objects)) + (do + (when (not config-valid?) + (println + (expound/expound-str config-spec? config-edn {:print-specs? false}))) + (when (not auth-valid?) + (println + (expound/expound-str auth-spec? auth-edn {:print-specs? false}))))))))))) \ No newline at end of file diff --git a/src/main/cljc/dda/c4k_common/common.cljc b/src/main/cljc/dda/c4k_common/common.cljc index 9b80e41..33eceb4 100644 --- a/src/main/cljc/dda/c4k_common/common.cljc +++ b/src/main/cljc/dda/c4k_common/common.cljc @@ -3,11 +3,9 @@ [clojure.walk] [clojure.spec.alpha :as s] [clojure.string :as cs] - [clojure.tools.reader.edn :as edn] #?(:clj [orchestra.core :refer [defn-spec]] :cljs [orchestra.core :refer-macros [defn-spec]]) - [dda.c4k-common.predicate :as cp] - [expound.alpha :as expound])) + [dda.c4k-common.predicate :as cp])) ;; deprecated functions were moved to dda.c4k-common.predicate @@ -60,53 +58,8 @@ (into [] (apply concat vs))) -(defn usage [name] - (str - "usage: - - " name "{your configuraton file} {your authorization file}")) - -(s/def ::options (s/* #{"-h"})) -(s/def ::filename (s/and string? - #(not (cs/starts-with? % "-")))) -(s/def ::cmd-args (s/cat :options ::options - :args (s/? - (s/cat :config ::filename - :auth ::filename)))) - -(defn invalid-args-msg - [name spec args] - (s/explain spec args) - (println (str "Bad commandline arguments\n" (usage name)))) - (defn generate-common [my-config my-auth config-defaults k8s-objects] (let [resulting-config (merge config-defaults my-config my-auth)] (cs/join "\n---\n" - (k8s-objects resulting-config)))) - -(defn main-common [name config-spec? auth-spec? config-defaults k8s-objects cmd-args] - (let [parsed-args-cmd (s/conform ::cmd-args cmd-args)] - (if (= ::s/invalid parsed-args-cmd) - (invalid-args-msg name ::cmd-args cmd-args) - (let [{:keys [options args]} parsed-args-cmd - {:keys [config auth]} args] - (cond - (some #(= "-h" %) options) - (println usage) - :default - (let [config-str (slurp config) - auth-str (slurp auth) - config-edn (edn/read-string config-str) - auth-edn (edn/read-string auth-str) - config-valid? (s/valid? config-spec? config-edn) - auth-valid? (s/valid? auth-spec? auth-edn)] - (if (and config-valid? auth-valid?) - (println (generate-common config-edn auth-edn config-defaults k8s-objects)) - (do - (when (not config-valid?) - (println - (expound/expound-str config-spec? config-edn {:print-specs? false}))) - (when (not auth-valid?) - (println - (expound/expound-str auth-spec? auth-edn {:print-specs? false}))))))))))) + (k8s-objects resulting-config)))) \ No newline at end of file