Sha256: fc75f350b7cd852e2c30e2f8ee676d10429eeb8e47e8dabbd489ae89897c1fff
Contents?: true
Size: 1.34 KB
Versions: 6
Compression:
Stored size: 1.34 KB
Contents
require 'dpl/error' require 'dpl/provider' module DPL class CLI def self.run(*args) new(args).run end OPTION_PATTERN = /\A--([a-z][a-z_\-]*)(?:=(.+))?\z/ attr_accessor :options, :fold_count def initialize(*args) options = {} args.flatten.each do |arg| next options.update(arg) if arg.is_a? Hash die("invalid option %p" % arg) unless match = OPTION_PATTERN.match(arg) key = match[1].tr('-', '_').to_sym if options.include? key options[key] = Array(options[key]) << match[2] else options[key] = match[2] || true end end self.fold_count = 0 self.options = default_options.merge(options) end def run provider = Provider.new(self, options) provider.deploy rescue Error => error options[:debug] ? raise(error) : die(error.message) end def fold(message) self.fold_count += 1 print "travis_fold:start:dpl.#{fold_count}\r" if options[:fold] puts "\e[33m#{message}\e[0m" yield ensure print "\ntravis_fold:end:dpl.#{fold_count}\r" if options[:fold] end def default_options { :app => File.basename(Dir.pwd), :key_name => %x[hostname].strip } end def die(message) $stderr.puts(message) exit 1 end end end
Version data entries
6 entries across 6 versions & 1 rubygems
Version | Path |
---|---|
dpl-1.1.1 | lib/dpl/cli.rb |
dpl-1.1.0 | lib/dpl/cli.rb |
dpl-1.0.3 | lib/dpl/cli.rb |
dpl-1.0.2 | lib/dpl/cli.rb |
dpl-1.0.1 | lib/dpl/cli.rb |
dpl-1.0.0 | lib/dpl/cli.rb |