(defn get-cljs-nses-and-vars []
(loop [files (tree-seq
(fn [^java.io.File f]
(and (.isDirectory f) (visible? f)))
(fn [^java.io.File d]
(seq (.listFiles d)))
(io/file "."))
ns->vars {}]
(if-let [f (first files)]
(if (and (.isFile f)
(-> f .getName (.endsWith ".cljs")))
(recur
(rest files)
(try
(read-cljs-file ns->vars f)
(catch Exception e
(.printStackTrace e)
ns->vars)))
(recur (rest files) ns->vars))
ns->vars)))