前回の記事では、
stack new
してとりあえず簡単なHaskell製のプログラムを書き始める方法をお伝えしました。
今回は、前回の記事でTODOになっていた、stack new
して作られるファイルのテンプレートの設定を変えて、もうちょっと始めやすくしたいと思います。
ちょうど僕が新しいプロジェクトを作りたくなったので、その作業記録です。
ハマりどころ: stackのバージョンが古かったorz
いきなりですがハマりました...
下記の通りに動かすには、stackを0.1.4.0以降に上げる必要があります。
更新する場合は、やはりOSによって方法が異なってしまいますが、
stack upgrade
と実行すると、よしなにやってくれるかもしれません。
(EXPERIMENTALな機能だそうなのでご利用は計画的に。)
私の場合は、Arch Linuxなので普通にyaourt -S haskell-stack
しました
テンプレートの正体を追え!
それでは気を取り直して。
そもそも、前回stack new
してできたテンプレートの内容はどこから来ているのでしょう?
ググったらすぐ見つかりました。commercialhaskell/stack-templatesです。
で、こちらのREADME曰く、~/.stack/stack.yaml
( 重要な変更あり1)をいじれ、とのこと。
私の場合は以下の通り。
templates:
params:
author-name: Yuji Yamamoto
author-email: whosekiteneverfly@gmail.com
copyright: 2015 Yuji Yamamoto
github-username: igrep
category: Development
で、保存したら後はこの間と同様、
$ stack new foobar
するだけです。
LICENSEファイルなどを確認してみましょう。
もっと違うテンプレートも使いたい!
私が調べた限り、今のところcommercialhaskell/stack-templatesにあるテンプレートのみが使えるみたいです。
*.hsfiles
となっているファイルがそれです。デフォルトではsimple.hsfiles
というのが使われます。
他のテンプレートを使いたいときは、
$ stack new foobar hakyll-template
などと実行しましょう。これですぐに新しいブログを始められますね!
git initも自動化したい!!!!!!!1
ちなみに、上述ハマった件でstackのソースを調べていたところ、下記のようなオプションを見つけました。
templates:
scm-init: git # <- コレ!
params:
...
文字通りです。
stack new foobar
すれば、foobar/
以下にテンプレートの内容だけでなく、.git
も作られます。
便利!
-
stack v0.1.6.0以降、
~/.stack/stack.yaml
は~/.stack/config.yaml
となったそうです。ご利用の方はご注意ください。 ↩