某 neobundle にできて Ruby にできないわけ無いじゃない ヽ(`Д´)ノ てことで。
僕は自作の Rakefile を叩いて最新化してます。
gitplugins フォルダに github にあるプラグインが沢山置いてあるとしてこんな感じ。
task :update_github do puts "" puts ">>> pull github repositories ..." Dir.chdir("gitplugins") que = Queue.new Dir.glob("*") do |d| que.push d end dir = Dir.pwd threads = [] while !que.empty? threads << Thread.new(que.pop) do |target| repos = File.join(dir, target) if File.directory? repos Dir.chdir(repos) #puts "git pull #{target}" ret = `git pull 2>&1` if ret.chomp != 'Already up-to-date.' error_flg = false ret.each_line do |line| if line =~ /error/ puts "#{target} ... #{line}" error_flg = true break end end puts "updated #{target}" unless error_flg end end end end threads.each do |t| t.join end end
1つずつ git pull するのにくらべてあっというま。
色々間違ってそうな気もするけど、いまのところ特に問題ないようだ。
end がやけに多いのが気になるね。