class ConfigKit::Cli::Deploy

Public Class Methods

command() click to toggle source
# File lib/config_kit/cli/commands/deploy.rb, line 3
def self.command; "deploy"; end
new(args) click to toggle source
Calls superclass method ConfigKit::Cli::Command::new
# File lib/config_kit/cli/commands/deploy.rb, line 5
def initialize(args)
  @app = nil
  @version = nil
  super(args)
  check_args
end

Public Instance Methods

check_args() click to toggle source
# File lib/config_kit/cli/commands/deploy.rb, line 12
def check_args
  raise ConfigKit::Cli::Command::CommandFailure.new "Missing app parameters" if @app.nil?
  raise ConfigKit::Cli::Command::CommandFailure.new "Missing version parameters" if @version.nil?
end
run() click to toggle source
# File lib/config_kit/cli/commands/deploy.rb, line 17
def run
  begin
    ConfigKit.logger.debug "Run command #{self.class.command} with options #{@app}:#{@version}"
    @output = ConfigKit::Manager.deploy(@app, @version)
    pp @output.to_h.to_json
  rescue ConfigKit::Cli::Command::CommandFailure
    raise
  rescue => e
    ConfigKit.logger.error "Unexpected error attempting to get config data #{@uri} in env #{@env} for #{@app.nil? ? 'all' : @app}"
    ConfigKit.logger.debug "#{e}: #{e.backtrace.join("\n   ")}"
    raise ConfigKit::Cli::Command::CommandFailure.new(e.to_s)
  end
end

Private Instance Methods

options() click to toggle source
# File lib/config_kit/cli/commands/deploy.rb, line 32
def options
  OptionParser.new %Q{Usage: #{$0} #{self.class.command} [OPTIONS] ["description"] }, 40 do |opts|
    opts.separator ''
    opts.separator 'Specific options:'
    
    opts.on('-a APP', '--app', 'Specify an app of config to create(default: nil to deploy all apps)') do |app|
      @app = app
    end

    opts.on('-v VERSION', '--version', 'Specify a version of application to describe') do |version|
      @version = version[0] == 'v' ? version : "v#{version}"
    end
  end
end