HEAD をアーカイブるスクリプトを書いてみた

git archive なんてら〜って毎回やるのは*1めんどくさいので、書いてみた。
tag には、ver-1.0.0.0 みたいなのが入ってるの前提で。

#!/local/usr/bin/ruby
# -*- encoding: shift_jis -*-
# archive.rb
versions        = `git tag`.split( /\n/ ).delete_if { |tag| (tag =~ /ver-.*/).nil?  }
if versions.length > 0 then
  current_version = versions.pop

  package_name    = Dir.pwd.split( /\// ).pop
  disp_version    = current_version.gsub( /ver-/, "" )

  archive_name    = "#{package_name}-#{disp_version}-src.zip"

  `git archive --format=zip HEAD > ../#{archive_name}`
else
  puts "バージョンタグがないよぉ〜?"
end

または、tag の ver の数だけアーカイブを作るスクリプト。

#!/local/usr/bin/ruby
# -*- encoding: shift_jis -*-
# all-archive.rb
versions        = `git tag`.split( /\n/ ).delete_if { |tag| (tag =~ /ver-.*/).nil?  }
if versions.length > 0 then
  versions.each do |current_version|
    package_name    = Dir.pwd.split( /\// ).pop
    disp_version    = current_version.gsub( /ver-/, "" )

    archive_name    = "#{package_name}-#{disp_version}-src.zip"

    `git archive --format=zip HEAD > ../#{archive_name}`
  end
else
  puts "バージョンタグがないよぉ〜?"
end

*1:そんなに何度もやるコマンドじゃないけれど