How to run .clj file as a script using leningen?

There are several ways with lein repl:

  • Very slow: cat your_file.clj | lein repl
  • Slow: echo '(load-file "your_file.clj")' | lein repl
  • Fast:
    1. lein repl
    2. (load-file "your_file.clj")
    3. repeat 2

use lein-exec plugin, example from readme.md (updated with "lein" instead of "lein2")

cat foo.clj | lein exec
lein exec -e '(println "foo" (+ 20 30))'
lein exec -ep "(use 'foo.bar) (pprint (map baz (range 200)))"
lein exec -p script/run-server.clj -p 8088
lein exec ~/common/delete-logs.clj