module GClouder::Config::CLIArgs
Public Class Methods
check()
click to toggle source
# File lib/gclouder/config/cli_args.rb, line 73 def self.check raise ArgumentError, "config file not specified" unless cli_args[:config_given] raise ArgumentError, "config file not readable: #{cli_args[:config]}" unless File.readable?(cli_args[:config]) end
cli_args()
click to toggle source
# File lib/gclouder/config/cli_args.rb, line 6 def self.cli_args @cli_args ||= { debug: false } end
included(klass)
click to toggle source
# File lib/gclouder/config/cli_args.rb, line 14 def self.included(klass) klass.extend CLIArgs end
load()
click to toggle source
# File lib/gclouder/config/cli_args.rb, line 22 def self.load option_parser = Trollop::Parser.new do banner GClouder::Header.display + "\n \n " # required opt :config, "path to config file\n ", type: :string, required: true # level of operation opt :dry_run, "passive mode" opt :purge, "remove unmanaged resources (destructive!)\n " # authentication / for automation opt :activate_service_accounts, "activate service account(s) (for use when running using service accounts, i.e: with CI)" opt :keys_dir, "path to directory with service account key files (for use with --activate-service-accounts)\n ", type: :string opt :ignore_default_service_account, "don't attempt to switch back to a default service account for the environment" # which resources / actions # FIXME: integrate checks for required permissions into Project module opt :bootstrap, "create project (requires being run as non-service account)" # this should be type: proc and validate that the params match one of: validate, ensure, clean opt :stages, "which stages to run (validate,ensure,clean) [csv]", type: :string opt :resources, "which resources to update [csv]", type: :string opt :skip_cross_project_resources, "skip resources which don't reside in main project\n " # output opt :debug, "print commands to be executed, and stack traces" opt :trace, "print stack traces" opt :no_color, "disable color\n \n " end @cli_args = Trollop.with_standard_exception_handling(option_parser) do raise Trollop::HelpNeeded if ARGV.empty? option_parser.parse ARGV end String.disable_colorization = @cli_args[:no_color] if @cli_args[:resources] @cli_args[:resources].split(',').each do |resource| unless valid_resources.include?(resource) puts "valid resources: #{valid_resources.join(', ')}" puts "invalid resource for --resources flag: #{resource}" exit 1 end end end check end
valid_resources()
click to toggle source
# File lib/gclouder/config/cli_args.rb, line 18 def self.valid_resources GClouder.resources.map { |resource| resource[:name] } end
Public Instance Methods
cli_args()
click to toggle source
# File lib/gclouder/config/cli_args.rb, line 10 def cli_args CLIArgs.cli_args end