📚

【Elixir】ちょっとしたスクリプトを書きたいタイミングで気軽にLivebookを利用する

2022/07/07に公開
1

開発をしているとちょっとした作業に使うスクリプトを書きたい時があると思います。

私の場合、shellスクリプトだとちょっと書きづらいときに使い捨てのexsスクリプトをよく書いています。

sample.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を参考にして、ご自身のワークフローに合うもので構築できると良いでしょう。

https://github.com/livebook-dev/livebook#installation

livebook起動時に --home オプションを渡すとLiveBookインスタンスのhomeを指定できます。次のようにカレントディレクトリをhomeとすることで今いるプロジェクトのディレクトリをlivebookで開くことができます。

$ livebook server --home .

livebook起動後は「New notebook」から新規ノートブックを作成できます。キャプチャの通り、サクサク起動します。

20220707_211803

あとはなんらかdepsを追加して検証するも良し、カレントディレクトリのファイル・フォルダ操作をするなり、livebookを好きに使うことができます。

「作業内容をmarkdown形式でメモをとりながらコードを動かす」というのが体験として良いです。

既存のMixプロジェクトを開く

まっさらな環境から使うだけでなく、既存のMixプロジェクトを指定して起動することもできます。

以下の手順でMixプロジェクトを指定して起動します。

  • 左メニューの「Runtime settings」を選択
  • 歯車アイコンから「Mix standalone」を選択
  • Mixプロジェクトのフォルダを選択して「Connect」を実行
  • deps.getが走ったあと、escキーか右上のボタンからモーダルを閉じる

20220707_213204

これでMixプロジェクトですでに指定している依存をインストールした状態でlivebookを書いていくことができます。

参考:

https://fly.io/blog/livebook-for-app-documentation/

livebookの内容をexportする

ある程度livebook上で動かして、commitするなり別のところにメモしておきたいと思ったら、右上のメニューからexportができます。markdown形式(.livemd)とelixirファイル形式(.exs)でexportできます。

タイトルの通りで、livebookでひとしきり動かした後にexsファイルとしてもexportできるため、IExよりリッチなエディタとして気軽にlivebookを使うことができます。

image

まとめ

livebookを気軽に使う日常を紹介してみました。escriptでインストールして気軽にlivebookを起動できるようにしてから利用頻度が増えた気がします。補完も効いたりmermaidで図が書けたりと、ツールとしてどんどん進化しています。ドキュメンテーションのツールとしても有用そうです。ぜひ活用してみてください。

Discussion

ElixirConf JPElixirConf JP

あぁ、やっぱりLIVEBOOK_DEFAULT_RUNTIME=mixオプション、使えなくなってたんですね…😭

メッチャ便利だったけど、理由が理由だけにしゃーなしですね