diff options
author | Eric Hodel <drbrain@segment7.net> | 2009-06-16 15:15:38 -0800 |
---|---|---|
committer | Eric Hodel <drbrain@segment7.net> | 2009-06-16 15:15:38 -0800 |
commit | 858f3880f0f7a9cd1e3c2c55db8c362e4cd0b0d6 (patch) | |
tree | a8e674283537f51fbf61c0ea06dcf86cde910c7b | |
parent | 97d3fe267d970b963a427a4b67923989aebeaffc (diff) | |
download | hoe-858f3880f0f7a9cd1e3c2c55db8c362e4cd0b0d6.tar.gz |
+ Fix and improve generate_key task. Patch #20441 by Matthew Kent.
[git-p4: depot-paths = "//src/hoe/dev/": change = 5047]
-rw-r--r-- | lib/hoe/signing.rb | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/lib/hoe/signing.rb b/lib/hoe/signing.rb index 2cf385b..84afb7f 100644 --- a/lib/hoe/signing.rb +++ b/lib/hoe/signing.rb @@ -82,7 +82,13 @@ module Hoe::Signing key_file = File.expand_path key_file cert_file = File.expand_path cert_file - unless File.exist? key_file or File.exist? cert_file then + unless File.exist? key_file then + puts "Generating certificate" + + if File.exist? key_file then + abort "Have #{key_file} but no #{cert_file}, aborting as a precaution" + end + warn "NOTICE: using #{email.first} for certificate" if email.size > 1 sh "gem cert --build #{email.first}" @@ -90,29 +96,25 @@ module Hoe::Signing mv "gem-public_cert.pem", cert_file, :verbose => true puts "Installed key and certificate." + end - rf = RubyForge.new.configure - rf.login - - cert_package = "#{rubyforge_name}-certificates" + rf = RubyForge.new.configure + rf.login - begin - rf.lookup 'package', cert_package - rescue - rf.create_package rubyforge_name, cert_package - end + cert_package = "#{rubyforge_name}-certificates" - begin - rf.lookup('release', cert_package)['certificates'] - rf.add_file rubyforge_name, cert_package, 'certificates', cert_file - rescue - rf.create_package rubyforge_name, cert_package - rf.add_release rubyforge_name, cert_package, 'certificates', cert_file - end + begin + rf.lookup 'package', cert_package + rescue + rf.create_package rubyforge_name, cert_package + end - puts "Uploaded certificate to release \"certificates\" in package #{cert_package}" + unless rf.lookup('release', cert_package)['certificates'] then + rf.add_release rubyforge_name, cert_package, 'certificates', cert_file + puts "Uploaded certificates to release \"certificates\" in package #{cert_package}" else - puts "Keys already exist: #{key_file} and #{cert_file}" + puts '"certificates" release exists, adding file anyway (will not overwrite)' + rf.add_file rubyforge_name, cert_package, 'certificates', cert_file end end end |