Windowsでgiter8を使う

giter8はn8han氏が開発しているScalaベースのツールで、Githubリポジトリに登録されているテンプレートからプロジェクトを生成するためのものです。Scala界隈ではビルドツールとしてsbtが一般的に利用されていますが、sbtはMavenのようなライブラリ管理機能は持っているものの、Mavenアーキタイプのようにプロジェクトの雛形を生成するための機能は備えていません。giter8はこの部分を補完してくれるツールといえます。
ただし、giter8をインストールするにはconscriptというツールが必要になります。conscriptもgiter8と同じくn8han氏が開発しているもので、こちらはGithubからScalaベースのソフトウェアのインストールを行うためのものです。どちらのツールGithubそのものをリポジトリと見なしているのが面白いところですね。
さて、そんなgiter8とconscriptですが、これらのツールは必要なリソースをgitコマンドを使用してインターネット経由で取得します。なのでWindowsで動かすにはそれなりに茨の道が待っているであろうことは容易に想像がつくわけです。ただ、gitコマンドが必要だからといって間違ってもCygwin上でインストールしようなどと考えてはいけません。余計大変な目にあいます。
というわけで、実際にWindows上でconscriptとgiter8を動かすための手順をまとめてみました。

事前準備

前述の通り、conscriptもgiter8もgitコマンドを使用してリソースのダウンロードを行うため、Windows上でgitコマンドが利用できる状態になっている必要があります。
僕の場合はmsysgitを使用しました(ダウンロードしたのはGit-1.7.8-preview20111206.exeというファイルで、ダブルクリックするとインストーラで簡単にインストールできます)。

conscriptのインストール

まずはgiter8のインストールを行うために必要なconscriptをインストールします。conscriptのサイトからインストール用のJARファイル(現時点での最新版はconscript-0.3.4.jar)をダウンロードし、javaコマンドで実行します。

> java -jar conscript-0.3.4.jar

プロキシが必要な環境の場合はこんな感じで。

> java -Dhttp.proxyHost=<ホスト> -Dhttp.proxyPort=<ポート>  -jar conscript-0.3.4.jar

なにやら怪しげなウィンドウが表示されインストールが行われます。インストールに成功するとHOME/bin/cs.batにconscriptを実行するためのバッチファイルが作成されているはずです。bin\csなどのようにパスを指定して実行してもよいのですが、頻繁に利用する場合は環境変数PATHを通しておくとよいでしょう。
ちなみにLinuxMacであれば以下のようなコマンドを実行することでインストールが可能なようです。

$ curl https://raw.github.com/n8han/conscript/master/setup.sh | sh

giter8のインストール

続いてgiter8のインストールです。先ほどインストールしたconscriptのcsコマンドを使用してインストールします。

> cs n8han/giter8

conscriptはgitコマンドでインストールするリソースを指定するため、プロキシが必要な場合は事前に以下のように環境変数をセットしておきます(cs.batを編集して入れておくのがよいでしょう)。

> set http_proxy=http://<ホスト>:<ポート>
> set https_proxy=https://<ホスト>:<ポート>

うまくいくとHOME/binディレクトリ(cs.batと同じ場所です)にgiter8を使用するためのg8.batというバッチファイルが作成されます。
ただ、現状のバージョン(0.3.1)ではg8コマンドを実行すると「gitコマンドが実行できない」というエラーが発生します。これは実行ファイルが「git.exe」なのに「git」を実行しようとして失敗しているようです。Githubリポジトリ上ではすでに修正されていますが、リリースされるまではリポジトリから自分でsbtでビルドしてローカルリポジトリにpublish-localして利用するなどする必要があります。非常に不便なので早期のリリースが望まれるところですが、次のバージョン(0.3.2)がリリースされれば上記に示した手順でインストールできるようになるはずです。

giter8を使ってみる

これでようやくgiter8が使用できるようになりました。試しになにかプロジェクトを作成してみましょう。
conscriptやgiter8と同じくn8han氏が提供するUnfiltered用のテンプレートを使ってみます。プロジェクト名など可変の項目は質問されるので適切な情報を入力します。

> g8 n8han/unfiltered-war

This template generates an Unfiltered project. By default it depends
on "unfiltered-filter".

version [0.1.0-SNAPSHOT]:
name [My Web Project]: unfiltered-sample
unfiltered_version [0.5.0]:

Applied n8han/unfiltered-war.g8 in unfiltered-sample

するとカレントディレクトリにUnfilteredを使ったWebアプリケーションを開発するためのプロジェクトのディレクトリが作成されているはずです。