Sha256: 031ae81b11ad7800cf57a8e6e887e45ddc6692208fc053e3f2f16bbf3b8a3fa5

Contents?: true

Size: 1.27 KB

Versions: 7

Compression:

Stored size: 1.27 KB

Contents

module Percheron
  module Commands
    class Abstract < Clamp::Command

      option([ '-c', '--config_file' ], 'CONFIG', 'Config file',
             default: Config::DEFAULT_CONFIG_FILE)

      option('--version', :flag, 'show version') do
        puts Percheron::VERSION
        exit(0)
      end

      def self.default_parameters!
        parameter('STACK_NAME', 'stack name', required: true)
        parameter('CONTAINER_NAMES', 'container names', default: [],
                                                        required: false) do |container_names|
          container_names.split(/,/)
        end
      end

      def self.default_create_parameters!
        default_parameters!
        option('--start', :flag, 'Start container', default: false)
      end

      def execute
        stack.valid?
      rescue => e
        signal_usage_error(e.message)
      end

      def stack
        return NullStack.new if stack_name.nil?
        Percheron::Stack.new(config, stack_name)
      end

      def default_config_file
        ENV.fetch('PERCHERON_CONFIG', Config::DEFAULT_CONFIG_FILE)
      end

      def config
        @config ||= Percheron::Config.load!(config_file)
      rescue Errors::ConfigFileInvalid => e
        $logger.error e.message
        exit(1)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
percheron-0.7.6 lib/percheron/commands/abstract.rb
percheron-0.7.5 lib/percheron/commands/abstract.rb
percheron-0.7.4 lib/percheron/commands/abstract.rb
percheron-0.7.3 lib/percheron/commands/abstract.rb
percheron-0.7.2 lib/percheron/commands/abstract.rb
percheron-0.7.1 lib/percheron/commands/abstract.rb
percheron-0.7.0 lib/percheron/commands/abstract.rb