Sha256: 4b94ee6674f7bddf984bee104c20e8040d6560f2b339778ee6395e30ee42bbc2

Contents?: true

Size: 1.38 KB

Versions: 1

Compression:

Stored size: 1.38 KB

Contents

#!/usr/bin/env ruby

require 'optparse'
require 'gem_repackager'

options = {
  verbose: false
}

OptionParser.new do |opts|
  opts.banner = "Usage: gem_repackager DIRECTORY [options]"

  opts.on("--destination N", String, "Set custom directory for gems to be sent") do |v|
    options[:destination] = v
  end

  opts.on('--gems x,y,z', Array, 'Comma-separated list of gem-version') do |list|
    options[:gems] = list
  end

  opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
    options[:verbose] = v
  end

  opts.on_tail("--version", "Show version") do
    puts Gem::Repackager::VERSION
    exit
  end
end.parse!

directory = ARGV[0]
options[:destination] ||= directory

if directory
  packager = Gem::Repackager.new directory
  packager.silence_warnings unless options[:verbose]

  if options[:gems]
    options[:gems].each do |gem|
      name, version = gem.split '-'
      spec = packager.load_spec name: name, version: version
      filename = packager.package_gem spec

      if filename
        FileUtils.mv filename, options[:destination]
        puts "#{gem} created at #{options[:destination]}"
      else
        puts "#{gem} could not be repackaged."
      end
    end
  else
    packager.package_all options[:destination]
    puts "Gems repackaged: #{packager.gems_built.size}. Gems failed: #{packager.gems_failed.size}."
  end
else
  puts "Usage: gem_repackager DIRECTORY [options]"
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gem_repackager-0.1.0 bin/gem_repackager