lib/packaging/gem.rb in packaging-0.99.4 vs lib/packaging/gem.rb in packaging-0.99.5

- old
+ new

@@ -1,90 +1,12 @@ module Pkg::Gem - @nexus_config = "#{ENV['HOME']}/.gem/nexus" - class << self # This is preserved because I don't want to update the deprecated code path # yet; I'm not entirely sure I've fixed everything that might attempt # to call this method so this is now a wrapper for a wrapper. def ship(file) - ship_to_stickler(file) - ship_to_nexus(file) rsync_to_downloads(file) ship_to_rubygems(file) - end - - def load_nexus_config - if Pkg::Util::File.file_exists?(@nexus_config) - config = YAML.load_file(@nexus_config) - end - config || {} - end - - def write_nexus_config - hash = load_nexus_config - if hash["GEM_INTERNAL"].nil? || hash["GEM_INTERNAL"][:authorization].nil? - puts "Please enter nexus username:" - username = Pkg::Util.get_input - puts "Please enter nexus password:" - password = Pkg::Util.get_input(false) - hash["GEM_INTERNAL"] = { :authorization => "Basic #{Pkg::Util.base64_encode("#{username}:#{password}")}" } - end - if hash["GEM_INTERNAL"][:url].nil? || hash["GEM_INTERNAL"][:url] != Pkg::Config.internal_nexus_host - hash["GEM_INTERNAL"][:url] = Pkg::Config.internal_nexus_host - end - File.open(@nexus_config, "w") do |file| - file.write(hash.to_yaml) - end - end - - # Ship a Ruby gem file to a Nexus server, because - # you've lost the ability to feel joy anymore. - def ship_to_nexus(file) - write_nexus_config - cmd = "gem nexus #{file} --repo GEM_INTERNAL" - if ENV['DRYRUN'] - puts "[DRY-RUN] #{cmd}" - else - stdout, _, _ = Pkg::Util::Execution.capture3(cmd, true) - # The `gem nexus` command always returns `0` regardless of what the - # command results in. In order to properly handle fail cases, this - # checks for the success case and fails otherwise. The `ex` command - # above will print any output, so the user should have enough info - # to debug the failure, and potentially update this fail case if - # needed. - fail unless stdout.include? "Created" - puts "#{file} pushed to nexus server at #{Pkg::Config.internal_nexus_host}" - end - rescue => e - puts "###########################################" - puts "# Nexus failed, ensure the nexus gem is installed," - puts "# you have access to #{Pkg::Config.internal_nexus_host}" - puts "# and your settings in #{@nexus_config} are correct" - puts "###########################################" - puts - puts e - raise e - end - - # Ship a Ruby gem file to a Stickler server, because - # you've lost the ability to feel joy anymore. - def ship_to_stickler(file) - Pkg::Util::Tool.check_tool("stickler") - cmd = "stickler push #{file} --server=#{Pkg::Config.internal_stickler_host} 2>/dev/null" - if ENV['DRYRUN'] - puts "[DRY-RUN] #{cmd}" - else - Pkg::Util::Execution.capture3(cmd) - puts "#{file} pushed to stickler server at #{Pkg::Config.internal_stickler_host}" - end - rescue => e - puts "###########################################" - puts "# Stickler failed, ensure it's installed" - puts "# and you have access to #{Pkg::Config.internal_stickler_host}" - puts "###########################################" - puts - puts e - raise e end # Use rsync to deploy a file and any associated detached signatures, # checksums, or other glob-able artifacts to an external download server. def rsync_to_downloads(file)