module Cli

Cli is a helper module for dealing with command line flags

Public Class Methods

check_opts(options) click to toggle source

Check options for any errors

@param options [Hash] The options to check

# File lib/cli.rb, line 10
def self.check_opts(options)
  %i[jobs env2conf].each do |key|
    if options[key].nil? || options[key].empty?
      raise ArgMissingError, key.to_s
    end
  end
  options[:bosh_deployment_manifest] ||= nil
end
make_option_parser(options) click to toggle source

Make an option parser bound to the hash passed in.

@param options [Hash] The hash that the options will be bound to on parse! @return [Object] The option parser that can be used.

# File lib/cli.rb, line 23
def self.make_option_parser(options)
  OptionParser.new do |opts|
    opts.banner = 'Usage: configgin [options]'

    # Job definition file
    opts.on('-j', '--jobs file', 'Job definitions') do |j|
      options[:jobs] = j
    end

    # Environment to configuration templates file
    opts.on('-e', '--env2conf file',
            'Environment to configuration templates YAML') do |e|
      options[:env2conf] = e
    end

    # Bosh deployment manifest
    opts.on('-b', '--bosh-deployment-manifest file', 'BOSH deployment manifest') do |b|
      options[:bosh_deployment_manifest] = b
    end

    opts.on('--version', 'Print the configgin version') do
      puts Configgin::VERSION
      exit 0
    end
  end
end