diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/hoe/gemcutter.rb | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/lib/hoe/gemcutter.rb b/lib/hoe/gemcutter.rb index 08ccbb8..851d11c 100644 --- a/lib/hoe/gemcutter.rb +++ b/lib/hoe/gemcutter.rb @@ -1,8 +1,29 @@ require "rake" +## +# Gemcutter plugin for hoe. +# +# === Extra Configuration Options: +# +# otp_command:: Shell command to run to populate GEM_HOST_OTP_CODE. + module Hoe::Gemcutter include Rake::DSL if defined?(Rake::DSL) + Hoe::DEFAULT_CONFIG["otp_command"] = false + + def gem_push gems + with_config do |config, _| + otp_command = config["otp_command"] + + ENV["GEM_HOST_OTP_CODE"] = `#{otp_command}`.chomp if otp_command + end + + gems.each do |g| + sh Gem.ruby, "-S", "gem", "push", g + end + end + ## # Define release_to_gemcutter and attach it to the release task. @@ -11,11 +32,8 @@ module Hoe::Gemcutter task :release_to_gemcutter => [:clean, :package, :release_sanity] do pkg = "pkg/#{spec.name}-#{spec.version}" gems = Dir["#{pkg}*.gem"] - gems.each do |g| - # TODO - once gemcutter supports command invocation, use it. - # We could still fail here due to --format executable - sh Gem.ruby, "-S", "gem", "push", g - end + + gem_push gems end task :release_to => :release_to_gemcutter |