Conscript の仕組み 

conscript は思ったよりも少ないことしか行わない。なぜなら sbt ランチャーが思ったより多くのことをこなすからだ。何を言っているんだ?


conscript が行うこと:

sbt ランチャーが行うこと:

conscript は、要するに sbt ランチャー周りの慣用を決め打ちして使いやすくしただけにすぎない。 例えば、$CONSCRIPT_HOME をデフォルトどおり $HOME/.conscript に設定したとする。

全ての conscript アプリの boot ディレクトリとして $CONSCRIPT_HOME/boot が使用される。 アプリの launchconfig は、GitHub プロジェクト名とスクリプトの名前の両方にもとづいたパスに保存される。具体例で説明すると、

$CONSCRIPT_HOME/foundweekends/conscript/cs/launchconfig

最後に、その launchconfig を参照するシェルスクリプトが、$CONSCRIPT_BIN (デフォルト $CONSCRIPT_HOME/bin) 以下に作成される。 例えば、~/.conscript/bin/cs という感じになる。 このシェルスクリプトの内容は、Mac だと以下のようになっている:

#!/bin/sh
java -jar /Users/foo/.conscript/sbt-launch.jar \
  @/Users/foo/.conscript/foundweekends/conscript/cs/launchconfig "$@"

この起動スクリプトが作成された後の、アーティファクトを取得したり、アプリを実行したりといった実際の仕事は、sbt ランチャーが行っている。