目次
このページではrakeコマンドについて以下の順を追って説明する.
rakeの基本
rakeコマンドというものがある.これはカレントディレクトリにあるRakefileの中身を実行するコマンド.
たとえば以下のようにRakefileに書いておく.
task default: :hello #何も指定しなければここが動作する
desc "hello" #description 説明の部分
task :hello do #rakeの後にhelloと指定するとここが動作する
puts "Hello Rake!!"
end
rakeだけ入力し実行するとdefaultで設定されているhelloの部分が実行される.
今はhelloだけだが,タスクを増やした場合その一覧を表示するには rake -T とする.
タスクを階層化する
rakeで実行するタスクの種類を増やす場合は namespace を以下のように使用する.
task default: 'basic:hello'
namespace :basic do
desc "hello"
task :hello do
puts "Hello Rake!!"
end
end
namespace :foo do
namespace :bar do
desc "foo bar hoge!!"
task :hoge do
puts "foo:bar:hoge!!"
end
end
end
$ rake -T
rake basic:hello # hello
rake foo:bar:hoge # foo bar hoge
gitを自動化
gitを共有する際,
$ git pull origin main
$ git add -A
$ git commit -m "hoge"
$ git push origin main
を実行するがいちいち打つのがめんどくさい.
そこで,rakeコマンドでこれらを実行できるようにする.
そのために system という関数を使用する.これはsystemコマンドを起動することができる関数である.
desc 'git pull push'
task :push do
p comm = "git pull origin main"
system comm
p comm = "git add -A"
system comm
p comm = "git commit -m #{ARGV[1]}"
system comm
p comm = "git push origin main"
system comm
exit
end
$ rake push
とコマンドに入力することでgitの一連の動作を自動で行うことができるようになった.
まとめ
今回はrakeコマンドでgitの一連の動作を自動化した.
参考
以下を参考にした.
- ruby rakeの使い方
- Rakeで自動化&Export#+begin_src ruby:check_leap_year.rb
- source ~/prog/github/grad_members_20f/members/miyanagi/post/rakefile.org