Clojure throws an exception when I don't expect it to -


i have code data sumo logic , other services.

core.clj has this, parses arguments , routes right function in route.clj

(def cli-options   [     ["-a" "--app appname" "set app. app can be:                                        sumologic or jira"]     ["-?" "--help"]     ])  (defn -main   [& args]   (let [{:keys [options summary errors arguments]} (parse-opts args cli-options)]     (cond       (:app options) (route/to (:app options) options arguments)       :else (print_usage summary)))) 

route.clj has this:

(defn   [app options arguments]   (case app     "jira" (jira/respond options arguments)     "sumologic" (sumo/respond))) 

and sumo.clj has this. there other functions, of course, showing relevant parts.

(defn get-env-var   [var]   (let [result (system/getenv var)]     (if (nil? result)       (throw (exception. (str "environment variable: " var " not set. aborting")))       result)))  (def access_key   (let [user (get-env-var "sumo_id")         pass (get-env-var "sumo_key")]     [user pass]))  (defn respond   []   (let [{:keys [status body error] :as response} (http/get endpoint rest-options)]     (if error       (println error)       (print-response body)))) 

when run program using leiningen lein run -- -? or lein run, error, though haven't explicitly called sumologic function. doing wrong , things can differently?

caused by: java.lang.exception: environment variable: sumo_key not set. aborting     @ clarion.sumo$get_env_var.invoke(sumo.clj:14)     @ clarion.sumo$fn__3765.invoke(sumo.clj:19)     @ clojure.lang.afn.applytohelper(afn.java:152)     @ clojure.lang.afn.applyto(afn.java:144)     @ clojure.lang.compiler$invokeexpr.eval(compiler.java:3553) 

you have def'd access_key being evaluated when load application. want make function instead.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -