Preface (はじめに)
makeやantのRuby版としてrake
があります. これはRakefile
に記述に沿って自動で処理してくれます.
今回はGitの "add-commit-pull-push"までの処理を自動化してくれるRakefile
を作って作業を楽にしたいと思います.
rake
Rakefileの基本
典型的なRakefile
は,
Rakefile
task :default do
system 'rake -T'
exit
end
desc 'hello NAME'
task :hello do
name = ARGV[1]
puts "Hello #{name}!"
exit
end
このRakefile
で実行すると
> rake
-> rake hello # hello NAME
> rake hello Wor
Hello Wor!
見事に作業の自動化ができました.
Gitの自動化
今度はGitの"add ~ push"までの作業を自動化する.
まずは, Gitのpullを自動化します. systemコマンドを起動する関数system
を用いて,
Rakefile
desc 'git pull'
task :pull do
p comm = "git pull origin main"
system comm
exit
end
以下のコマンドで実行できます.
> rake pull
次に, 今回の主目的であるGitの"add ~ push"までの作業を自動化するRakefile
は
Rakefile
desc 'git push'
task :push do
p comm = "git add -A"
system comm
p comm = "git commit -m \'hoge\'"
system comm
p comm = "git pull origin main"
system comm
p comm = "git push origin main"
system comm
exit
end
ただ, このままでは大量の"hoge"というコミットメッセージのコミットが生まれてしまうので,
自分でコミットメッセージを変えれるようにします.
Rakefile
require 'colorize'
desc 'git push'
task :push do
msg = ARGV[1]
p comm = "git add -A"
system comm
comm = "git commit -m \'" + msg + "\'"
puts comm.green
system comm
p comm = "git pull origin main"
system comm
p comm = "git push origin main"
system comm
exit
end
以下のコマンドで実行できます.
> rake push