18
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

stack new した時に出てくるファイルのテンプレートの設定

Last updated at Posted at 2015-09-19

前回の記事では、
stack newしてとりあえず簡単なHaskell製のプログラムを書き始める方法をお伝えしました。
今回は、前回の記事でTODOになっていた、stack newして作られるファイルのテンプレートの設定を変えて、もうちょっと始めやすくしたいと思います。
ちょうど僕が新しいプロジェクトを作りたくなったので、その作業記録です。

ハマりどころ: stackのバージョンが古かったorz

いきなりですがハマりました... :sweat_smile:
下記の通りに動かすには、stackを0.1.4.0以降に上げる必要があります。
更新する場合は、やはりOSによって方法が異なってしまいますが、
stack upgradeと実行すると、よしなにやってくれるかもしれません。
(EXPERIMENTALな機能だそうなのでご利用は計画的に。)

私の場合は、Arch Linuxなので普通にyaourt -S haskell-stackしました :innocent:

テンプレートの正体を追え!

:relieved: それでは気を取り直して。

そもそも、前回stack newしてできたテンプレートの内容はどこから来ているのでしょう?
ググったらすぐ見つかりました。commercialhaskell/stack-templatesです。

で、こちらのREADME曰く、~/.stack/stack.yaml:warning: 重要な変更あり1)をいじれ、とのこと。
私の場合は以下の通り。

~/.stack/stack.yaml(v0.1.6.0以降は~/.stack/config.yaml)
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のソースを調べていたところ、下記のようなオプションを見つけました。

~/.stack/stack.yaml(v0.1.6.0以降は~/.stack/config.yaml)
templates:
  scm-init: git # <- コレ!
  params:
    ...

文字通りです。

stack new foobarすれば、foobar/以下にテンプレートの内容だけでなく、.gitも作られます。
便利! :smile:

  1. stack v0.1.6.0以降、~/.stack/stack.yaml~/.stack/config.yamlとなったそうです。ご利用の方はご注意ください。

18
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?