class Scalemail

Attributes

configuration[R]
options[R]

Public Class Methods

new(args) click to toggle source
# File lib/scalemail.rb, line 9
def initialize(args)
  @options = OpenStruct.new
  opt_parser = OptionParser.new do |opts|
    opts.banner = 'Usage: scalemail -m DOCKER_MACHINE_CONFIG_PATH [options]'
    opts.separator ''
    opts.separator 'Specific options:'

    if args.empty?
      args << '-h'
    end

    opts.on('-m', '--docker-machine-config FILE',  'Docker Machine config file to load') { |cfile| @options.docker_machine_config_file = cfile }
    # opts.on('-c FILE', 'Docker Compose config file to load') { |cfile| @options.docker_compose_config_file = cfile }

    opts.on_tail('-h', '--help', 'Show this message') do
      puts opts
      exit
    end
  end

  opt_parser.parse!(args)
  config = get_config
  provision config
end

Public Instance Methods

configure(config_file) click to toggle source
# File lib/scalemail.rb, line 43
def configure(config_file)
  configuration = Configurator::Config.new(config_file)
  configuration
end
get_config() click to toggle source
# File lib/scalemail.rb, line 34
def get_config
  if @configuration.nil?
    config = configure @options.docker_machine_config_file
    return config
  else
    return @configuration
  end
end
provision(config_tree) click to toggle source
# File lib/scalemail.rb, line 48
def provision(config_tree)
  provisioner = Provisioner.new(config_tree)
  provisioner.provision_hosts
end