summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Hodel <drbrain@segment7.net>2009-06-16 15:15:38 -0800
committerEric Hodel <drbrain@segment7.net>2009-06-16 15:15:38 -0800
commit858f3880f0f7a9cd1e3c2c55db8c362e4cd0b0d6 (patch)
treea8e674283537f51fbf61c0ea06dcf86cde910c7b
parent97d3fe267d970b963a427a4b67923989aebeaffc (diff)
downloadhoe-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.rb40
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