conscript は思ったよりも少ないことしか行わない。なぜなら sbt ランチャーが思ったより多くのことをこなすからだ。何を言っているんだ?
conscript が行うこと:
launchconfig
(ランチャー設定ファイル) があるかを問い合わせる。
launchconfig
をローカルのファイルシステムにコピーして、boot path の設定を書き換える。
sbt ランチャーが行うこと:
launchconfig
を読み込む。
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 ランチャーが行っている。