Skip to content

Instantly share code, notes, and snippets.

@slifin
Forked from ericnormand/00_script.clj
Created March 26, 2020 14:50
Show Gist options
  • Save slifin/f4c4fe73a621d7c6129d7e6ff81c8752 to your computer and use it in GitHub Desktop.
Save slifin/f4c4fe73a621d7c6129d7e6ff81c8752 to your computer and use it in GitHub Desktop.
Boilerplate for running Clojure as a shebang script
#!/bin/sh
#_(
#_DEPS is same format as deps.edn. Multiline is okay.
DEPS='
{:deps {clj-time {:mvn/version "0.14.2"}}}
'
#_You can put other options here
OPTS='
-J-Xms256m -J-Xmx256m -J-client
'
exec clojure $OPTS -Sdeps "$DEPS" "$0" "$@"
)
(println "Hello!")
(require '[clj-time.core :as t])
(prn (str (t/now)))
(prn *command-line-args*)
(println (.. (Runtime/getRuntime)
totalMemory))
$ cp script.clj ~/bin/cljtest2
# ~/bin is on my $PATH
$ chmod +x ~/bin/cljtest2
$ time cljtest2 "Yo" "Hey" 1 3 4 - -ff
Hello!
"2019-03-01T17:22:43.564Z"
("Yo" "Hey" "1" "3" "4" "-" "-ff")
268435456
real 0m2.073s
user 0m6.073s
sys 0m0.297s
$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment