テンプレートからプロジェクトを生成できるcookiecutterを試す

cookiecutterは、テンプレート(雛形となるファイル群)を元に、プロジェクトファイル(ディレクトリやファイル)を生成できるコマンドラインツール。
Pythonで作られている。
GitHub - audreyr/cookiecutter: A command-line utility that creates projects from cookiecutters (project templates). E.g. Python package projects, jQuery plugin projects.
ローカルディレクトリや、github上のリポジトリにあるcookiecutterテンプレートを指定すると、対話的に必要な項目を入力してファイルを生成できる。
テンプレートは、対話的に入力させたい変数を定義したJSONファイルと、雛形となるファイル、ディレクトリで構成される。
雛形のファイルは、Jinja2テンプレートになっているので、制御構造やフィルタなども使える。
また、生成の過程でフックポイントが用意されており、Pythonコードを実行することもできる。

インストール

インストールにはpipコマンドを使う。virtualenv環境でも問題なし。

pip install cookiecutter

利用する

インストールするとcookiecutterコマンドが有効になる。
引数にテンプレートとなるディレクトリやリポジトリのパスを指定するとプロジェクトを作成できる。
github上のリポジトリの場合は、「gh:」のように簡易的な指定もできる。

cookiecutter gh:audreyr/cookiecutter-pypackage

cookiecutterで利用可能なテンプレートは、cookiecutterのドキュメントで紹介されている。
Available Cookiecutters