Skip to content

Instantly share code, notes, and snippets.

@hkupty
Created December 18, 2019 08:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hkupty/8d1e8199cdb0d98dc332e4c9ec684cd1 to your computer and use it in GitHub Desktop.
Save hkupty/8d1e8199cdb0d98dc332e4c9ec684cd1 to your computer and use it in GitHub Desktop.
jq for edn
#!/bin/sh
#_(
DEPS=''
OPTS='
-J-Xms256m -J-Xmx256m -J-client
'
exec clojure $OPTS -Sdeps "$DEPS" "$0" "$@"
)
(require '[clojure.edn :as edn]
'[clojure.string :as str])
(def in (slurp *in*))
(defn ->out [ret]
(cond
(coll? ret) (run! println ret)
:else (println ret)))
(def query
*command-line-args*)
(defn ->kw [s]
(keyword (clojure.string/replace s #":" "")))
(defn lex [obj]
(if (str/starts-with? obj ":")
(->kw obj)
(resolve (symbol obj))))
(def apply-fns (reduce comp (reverse (map lex *command-line-args*))))
(some->> in
(edn/read-string)
apply-fns
->out)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment