Ammonite を使用してお手軽に Scala のスクリプトを書く

sbt は優秀なツールだけれども、さくっと Scalaスクリプトを書くには Ammonite のほうがお気に入り。シェルからは -c オプションで気軽に Scalaスクリプトとして実行可能。

$ amm -c 'import scala.io.Source; val file = Source.fromFile("/home/kyagi/.gitconfig"); file.getLines.foreach(line => { if (line.contains("branch")) println(line) })'
Compiling /home/kyagi/(console)
    ba = branch -ra
    bd = branch -d
    bD = branch -D
    br = branch
    bv = branch -vv

スクリプトをファイルに落として起きたい時は @main というアンモナイト記法? の後に main function を書く。

showGitBranchAlias.sc

import scala.io.Source

@main
def main(): Unit = {
  val file = Source.fromFile("/home/kyagi/.gitconfig")
  file.getLines.foreach(line => {
    if (line.contains("branch")) println(line)
    }
  )
}
$ amm showGitBranchAlias.sc
Compiling /home/kyagi/bin/showGitBranchAlias.sc
    ba = branch -ra
    bd = branch -d
    bD = branch -D
    br = branch
    bv = branch -vv

もちろん REPL としても使える。sbt console よりも早く立ち上がる。プロンプトが @ なのがアンモナイトの名前の由来? ぽい (^.^;