【Elixir】ちょっとしたスクリプトを書きたいタイミングで気軽にLivebookを利用する
開発をしているとちょっとした作業に使うスクリプトを書きたい時があると思います。
私の場合、shellスクリプトだとちょっと書きづらいときに使い捨てのexsスクリプトをよく書いています。
# もちろんこんな簡単なのは書きませんが、、一例として
# 複雑な場合はシェル芸を頑張るより記述しやすかったりします(個人の感想です)
File.ls
|> IO.inspect
$ elixir sample.exs
{:ok, ["sample.exs"]}
こういったユースケースにlivebookが意外と使えるのでは?と思って試したところ体験が良かったので、流れを書いてみます。
livebookの起動
私の場合はescriptを利用してlivebookを起動しています。インストールの流れは以下の通りです。
$ mix do local.rebar --force, local.hex --force
$ mix escript.install hex livebook
# `livebook server` で起動
$ livebook server
dockerを使った方法やlivebookのrepositoryをcloneする方法など、サーバーの起動にはいくつか方法があります。READMEを参考にして、ご自身のワークフローに合うもので構築できると良いでしょう。
livebook起動時に --home
オプションを渡すとLiveBookインスタンスのhomeを指定できます。次のようにカレントディレクトリをhomeとすることで今いるプロジェクトのディレクトリをlivebookで開くことができます。
$ livebook server --home .
livebook起動後は「New notebook」から新規ノートブックを作成できます。キャプチャの通り、サクサク起動します。
あとはなんらかdepsを追加して検証するも良し、カレントディレクトリのファイル・フォルダ操作をするなり、livebookを好きに使うことができます。
「作業内容をmarkdown形式でメモをとりながらコードを動かす」というのが体験として良いです。
既存のMixプロジェクトを開く
まっさらな環境から使うだけでなく、既存のMixプロジェクトを指定して起動することもできます。
以下の手順でMixプロジェクトを指定して起動します。
- 左メニューの「Runtime settings」を選択
- 歯車アイコンから「Mix standalone」を選択
- Mixプロジェクトのフォルダを選択して「Connect」を実行
- deps.getが走ったあと、escキーか右上のボタンからモーダルを閉じる
これでMixプロジェクトですでに指定している依存をインストールした状態でlivebookを書いていくことができます。
参考:
livebookの内容をexportする
ある程度livebook上で動かして、commitするなり別のところにメモしておきたいと思ったら、右上のメニューからexportができます。markdown形式(.livemd)とelixirファイル形式(.exs)でexportできます。
タイトルの通りで、livebookでひとしきり動かした後にexsファイルとしてもexportできるため、IExよりリッチなエディタとして気軽にlivebookを使うことができます。
まとめ
livebookを気軽に使う日常を紹介してみました。escriptでインストールして気軽にlivebookを起動できるようにしてから利用頻度が増えた気がします。補完も効いたりmermaidで図が書けたりと、ツールとしてどんどん進化しています。ドキュメンテーションのツールとしても有用そうです。ぜひ活用してみてください。
Discussion
あぁ、やっぱりLIVEBOOK_DEFAULT_RUNTIME=mixオプション、使えなくなってたんですね…😭
メッチャ便利だったけど、理由が理由だけにしゃーなしですね