カジュアルにClojureのファイルを実行する

Leiningenは便利だけども、プロジェクトを作らないと実行できないのがたまに面倒くさい。 そこで、ここを参考に実行用のファイルを作ってみた。

その1

Leiningenはclojure本体を~/.m2/repository/org/clojure/clojure/1.6.0/clojure-1.6.0.jarに持ってくるので、、 こんな感じのファイルを~/bin/cljとでも名付けて(実行可能にして)置いた。

#!/usr/bin/env sh
exec java -cp ~/.m2/repository/org/clojure/clojure/1.6.0/clojure-1.6.0.jar clojure.main $1

こんなノリで実行できる。

clj hoge.clj

その2

ちょいと調べてみたら、lein-execなるLeiningenのプラグインが見つかった。 ~/.lein/profiles.cljプラグインベクタ[lein-exec "0.3.4"]を追加してあげる(バージョンは変わりうる)。

これで実行できる。 その1のやつと違って~/.m以下のモジュールにパスが通っている感ある。

lein exec hoge.clj

欠点として、起動が少し遅いのと、コマンド入力時にファイル名が補完できない点がある。 起動が遅いのは諦めるとして、ファイル名補完は上の戦法をパクることで解決した。 ~/bin/cljを次のように書き換えただけ。

#!/usr/bin/env sh
exec lein exec $1

ひとまずこれで良さそうな気がする。 実際にこれを使うかは全く予想がつかない(たぶん使わない気がするw)。