diff --git a/src/main/clj/dda/c4k_keycloak/uberjar.clj b/src/main/clj/dda/c4k_keycloak/uberjar.clj index 2deec99..8f829fa 100644 --- a/src/main/clj/dda/c4k_keycloak/uberjar.clj +++ b/src/main/clj/dda/c4k_keycloak/uberjar.clj @@ -1,56 +1,14 @@ (ns dda.c4k-keycloak.uberjar (:gen-class) (:require - [clojure.spec.alpha :as s] - [clojure.string :as cs] - [clojure.tools.reader.edn :as edn] - [expound.alpha :as expound] + [dda.c4k-common.uberjar :as uberjar] [dda.c4k-keycloak.core :as core])) -(def usage - "usage: - - c4k-keycloak {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 expound-config - [config] - (expound/expound ::core/config config)) - -(defn invalid-args-msg - [spec args] - (s/explain spec args) - (println (str "Bad commandline arguments\n" usage))) - (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) - (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? core/config? config-edn) - auth-valid? (s/valid? core/auth? auth-edn)] - (if (and config-valid? auth-valid?) - (println (core/generate config-edn auth-edn)) - (do - (when (not config-valid?) - (println - (expound/expound-str core/config? config-edn {:print-specs? false}))) - (when (not auth-valid?) - (println - (expound/expound-str core/auth? auth-edn {:print-specs? false}))))))))))) + (uberjar/main-common + "c4k-keycloak" + core/config? + core/auth? + core/config-defaults + core/k8s-objects + cmd-args))