 ;; Read config
 
 ;;https://github.com/l1x/shovel/blob/master/src/shovel/core.clj
+;;this is considered defensing programming, but it is intentional
+;;supplying an arbitrary bad input should not cause this function to 
+;;explode, in fact it should just return an error
 (defn read-file
   "Returns {:ok string } or {:error...}"
   [^String file]

(defn -main 
  "
  This is the main entry point when you start up the JAR
  "
  [& args]
  (let [  chan    (chan 5) 

  (catch Exception e
    {:error "Exception" :fn "read-file" :exception (.getMessage e) }))) ; catch all exceptions

;;Parsing a string to Clojure data structures the safe way
;;aka what could possibly go wrong dealing with a random
;;user controlled string
(defn parse-edn-string
  "Returns the Clojure data structure representation of s"
  [s]
  (try
    {:ok (clojure.edn/read-string s)}
