class GemOnDemand::CLI
Public Class Methods
run(argv)
click to toggle source
# File lib/gem_on_demand/cli.rb, line 8 def run(argv) options = parse_options(argv) if expire = options[:expire] GemOnDemand.expire(*expire.split("/")) else GemOnDemand::Server.run!(options) end 0 end
Private Class Methods
parse_options(argv)
click to toggle source
# File lib/gem_on_demand/cli.rb, line 20 def parse_options(argv) options = {} parser = OptionParser.new do |opts| opts.banner = <<-BANNER.gsub(/^ {12}/, "") Run your own gem server that fetches from github, uses tags as version and builds gems on demand Usage: gem-on-demand --server Options: BANNER opts.on("-s", "--server", "Start server") { options[:server] = true } opts.on("-e", "--expire NAME", String, "Expire gem cache for {user}/{project}") { |name| options[:expire] = name } opts.on("-p", "--port PORT", Integer, "Port for server (default #{GemOnDemand::Server.port})") { |port| options[:port] = port } opts.on("-h", "--help", "Show this.") { puts opts; exit } opts.on("-v", "--version", "Show Version"){ puts GemOnDemand::VERSION; exit} end parser.parse!(argv) # force server for now ... if !options.delete(:server) && !options[:expire] puts parser exit 1 end options end