ヽ(´・肉・`)ノログ

How do we fighting without fighting?

Rakeタスクを自作して自動インポートする(非Rails)

Rails の場合 Custom Rake Tasks にあるように lib/tasks/foo.rake というファイルを作ると自動的に読みこんでくれて, rake -T すると一覧に表示される.

さて,Rails ではない場合でも同じように「あるディレクトリにファイルを作ると,自動的にタスクとして読み込んでくれる」というのを作れるだろうか?

Rake リファレンスマニュアルの Rake コマンドの使い方のところを眺めると,答えが書いてあった.

-R, --rakelibdir RAKELIBDIR   RAKELIBDIR にある *.rake ファイルを自動的にインポートします。
    --rakelib                 デフォルトは rakelib です。
  

rakelib という名前のディレクトリを作って,そこに *.rake を収めると自動的にインポートしてくれるようだ.

$ mkdir foo
$ cd foo
foo$ touch Rakefile
foo$ rake -AT
foo$ mkdir rakelib
foo$ cat <<EOD > rakelib/foo.rake
task :hello do
  puts 'do task hello!'
end
EOD
foo$ rake -AT
rake hello  #

hello というタスクが追加できている.

このエントリーをはてなブックマークに追加