Clojure: CLI で Gorilla REPL を起動する方法

           ·

Gorilla REPL を Leiningen ではなく、Clojure CLI から起動する方法をメモしておきます。

モチベーション

clojure.org の REPLを使った開発ガイド に読んでいるときに Gorilla REPL なるプロジェクトに関する記載がありました。

REPLのセッションを「ノート」形式で保存したい? Gorilla REPL はまさにその目的のために作られたプロジェクトだよ!(意訳)

Gorilla REPL なるものを初めて聞いたため、早速試してみようと思いました。 が、これは Leiningenのプラグイン として実装されているものらしく、公式の Getting startedでは lein コマンド経由で実行する方法しか説明がなされていませんでした。

これは困った…。ちょっとさわってみるために Leiningn を入れるのもいやだしなあ〜。 ということで、clj コマンドでの起動について調査してみました。 いつか何かの役に立つかもしれないので、起動方法を残しておきましょう。

Gorilla REPL is 何?

http://gorilla-repl.org によると、

Gorilla is a rich REPL for Clojure in the notebook style. What on earth does that mean, you say? Well, maybe it’s best to take a look at a short video showing you what it can do:

Gorilla は 「ノート」形式のClojure向けリッチREPL環境です。一体全体なんのことなんだって?まあ、何ができるのかを示した短いビデオを見てみるのが一番良いかもしれません。(意訳)

で、説明ビデオがリンクされているわけですが、以下のキャプチャーを見ていただくともっと話は早いかもしれません。

log.SetOutput.jpg

その他、詳細いついては http://gorilla-repl.org を参照ください。

Clojure CLI からの起動

以下が本題

gorilla-repl.core の実装内容をみるに、clj コマンド経由で起動するためには、 gorilla-repl.core/-main を実行してあげれば良さそうです。

clj -Sdeps '{:deps {org.clojars.benfb/gorilla-repl {:mvn/version "0.7.0"}}}' -m gorilla-repl.core
$ clj -Sdeps '{:deps {org.clojars.benfb/gorilla-repl {:mvn/version "0.7.0"}}}' -m gorilla-repl.core
Gorilla-REPL: develop
Unable to reach update server.
Started nREPL server on port 50778
Running at http://127.0.0.1:8990/worksheet.html .
Ctrl+C to exit.

この場合、 ポート番号 8990 はハードコードされているため、毎回同じとなります。 もし、固定のポートで起動してもらっては困る、と言う場合には clj コマンドにてreplを起動したあとで run-gorilla-server を実行してあげればOKでした。

$ clj -Sdeps '{:deps {org.clojars.benfb/gorilla-repl {:mvn/version "0.7.0"}}}' 
Clojure 1.10.1
user=> (use 'gorilla-repl.core)
nil
user=> (run-gorilla-server {})
Gorilla-REPL: develop
Unable to reach update server.
Started nREPL server on port 65066 
Running at http://127.0.0.1:65069/worksheet.html .
Ctrl+C to exit.

この場合、ポートは動的に割り当てられ、 コンソールに表示されます。

参考

comments powered by Disqus