diff --git a/src/pricebot/core.clj b/src/pricebot/core.clj index e3e6a34..b2ac355 100644 --- a/src/pricebot/core.clj +++ b/src/pricebot/core.clj @@ -179,13 +179,18 @@ (println msg) (System/exit status)) +(defn pprint-to-string [o] + (with-out-str (clojure.pprint/pprint o))) + (defn get-args [keys args] (let [input-opts (parse-opts args cli-opts) opts (into {} (map (partial get-key input-opts) keys)) missing (filter (fn [k] (not (get opts k))) keys)] - (cond (:help opts) (exit! 0 (println (:summary opts))) - (:errors opts) (exit! 1 (println (str/join \newline (:errors opts)))) - (not (empty? missing)) (exit! 2 (println (str "missing arguments: " (str/join " " (map name missing))))) + (cond (:help opts) (exit! 0 (:summary opts)) + (:errors opts) (exit! 1 (str/join \newline (:errors opts))) + (not (empty? missing)) (exit! 2 (str "missing arguments: " (str/join " " (map name missing)) + \newline + "available: " (pprint-to-string opts))) :else opts))) (defn -main [& args]