sbt の prompt に表示される文字を変更する方法

とりあえずこうなる(結果)

まあ、なんということでしょう!あっという間にsbtのコンソールにブランチ名が!... on Twitpic
sbt のコンソールに現在の git のブランチ名が表示されている状態です。
やり方に興味ある人は続きをどぞー


ちなみほとんど @xuwei_k 先生に twitter で教えてもらったというあるさまです・ω・
あるがとうございました!


講義(公開処刑(ん?))の内容はとっげっておいたので、sbt の内部について詳しく知りたい人は目を通しておくととても勉強になるますよー
http://togetter.com/li/240617

環境

scala 2.9.1.final
sbt 0.11

まずはおっぱいにしてみる(意味不明)

cd work(どこでもい(ry
mkdir project
vim project/oppai.scala

sbt
oppai>

こんな感じになったら成功。

git のブランチ名にしてみる

git init
git add project/oppai.scala
git commit -m 'add oppai'
git branch peropero
git checkout peropero
vim project/oppai.scala

git はとりあえずなんでもいいんで一度はコミットしとかないとブランチ切れないっぽいす。

  • project/oppai.scala の diff
 object MyBuild extends Build {
-  val prompt = "oppai> "
+  val prompt = "git branch".lines_!.find{_.head == '*'}.map{_.drop(2)}.getOrElse("") + "> "
   lazy val root = Project(

sbt
peropero>

こんな感じになったら成功。


なんでブランチ名が表示できるか軽く補足を書こうと思ったんですが、めんどくさいので気になる人は「scala lines_!」でぐぐってください><
違ってたら恥ずかしいんで断言しませんがシェルを呼んでその文字列を見てるだけっぽいっす。