class Options
rubocop:disable Metrics/ClassLength
Public Class Methods
file_options()
click to toggle source
rubocop:disable Metrics/BlockLength rubocop:disable Metrics/MethodLength
# File lib/cfn-nag/cli_options.rb, line 26 def self.file_options options_message = '[options] <cloudformation template path ...>|' \ '<cloudformation template in STDIN>' custom_rule_exceptions_message = @custom_rule_exceptions_message version = @version Optimist.options do usage options_message version version opt :debug, 'Enable debug output', type: :boolean, required: false, default: false opt :allow_suppression, 'Allow using Metadata to suppress violations', type: :boolean, required: false, default: true opt :print_suppression, 'Emit suppressions to stderr', type: :boolean, required: false, default: false opt :rule_directory, 'Extra rule directory', type: :string, required: false, default: nil opt :profile_path, 'Path to a profile file', type: :string, required: false, default: nil opt :blacklist_path, 'Path to a blacklist file', type: :string, required: false, default: nil opt :parameter_values_path, 'Path to a JSON file to pull Parameter values from', type: :string, required: false, default: nil opt :condition_values_path, 'Path to a JSON file to pull Condition values from', type: :string, required: false, default: nil opt :isolate_custom_rule_exceptions, custom_rule_exceptions_message, type: :boolean, required: false, default: false opt :fail_on_warnings, 'Treat warnings as failing violations', type: :boolean, required: false, default: false opt :output_format, 'Format of results: [txt, json, colortxt]', type: :string, default: 'colortxt' opt :rule_repository, 'Path(s) to a rule repository to include in rule discovery', type: :strings, required: false opt :rule_arguments, 'Rule arguments to inject into interested rules', type: :strings, required: false opt :rule_arguments_path, 'Path to a rule arguments to inject into interested rules', type: :string, required: false, default: nil opt :ignore_fatal, 'Ignore files with fatal violations. Useful for ignoring non-Cloudformation yaml/yml/json in a path', type: :boolean, required: false, default: false end end
for(type)
click to toggle source
# File lib/cfn-nag/cli_options.rb, line 13 def self.for(type) case type when 'file' file_options when 'scan' scan_options else raise "Unsupported Options type #{type}; use 'file' or 'scan'" end end
scan_options()
click to toggle source
# File lib/cfn-nag/cli_options.rb, line 111 def self.scan_options input_path_message = 'CloudFormation template to nag on or directory of ' \ 'templates. Default is all *.json, *.yaml, *.yml ' \ 'and *.template recursively, but can be constrained ' \ 'by --template-pattern' template_pattern_message = 'Within the --input-path, match files to scan ' \ 'against this regular expression' custom_rule_exceptions_message = @custom_rule_exceptions_message version = @version Optimist.options do version version opt :input_path, input_path_message, type: :string, required: true opt :output_format, 'Format of results: [txt, json, colortxt]', type: :string, default: 'colortxt' opt :debug, 'Enable debug output', type: :boolean, required: false, default: false opt :rule_directory, 'Extra rule directory', type: :string, required: false, default: nil opt :profile_path, 'Path to a profile file', type: :string, required: false, default: nil opt :blacklist_path, 'Path to a blacklist file', type: :string, required: false, default: nil opt :parameter_values_path, 'Path to a JSON file to pull Parameter values from', type: :string, required: false, default: nil opt :condition_values_path, 'Path to a JSON file to pull Condition values from', type: :string, required: false, default: nil opt :allow_suppression, 'Allow using Metadata to suppress violations', type: :boolean, required: false, default: true opt :print_suppression, 'Emit suppressions to stderr', type: :boolean, required: false, default: false opt :isolate_custom_rule_exceptions, custom_rule_exceptions_message, type: :boolean, required: false, default: false opt :template_pattern, template_pattern_message, type: :string, required: false, default: '..*\.json|..*\.yaml|..*\.yml|..*\.template' opt :fail_on_warnings, 'Treat warnings as failing violations', type: :boolean, required: false, default: false opt :rule_repository, 'Path(s)s to rule repository to include in rule discovery', type: :strings, required: false opt :rule_arguments, 'Rule arguments to inject into interested rules', type: :strings, required: false opt :rule_arguments_path, 'Path to a rule arguments to inject into interested rules', type: :string, required: false, default: nil opt :ignore_fatal, 'Ignore files with fatal violations. Useful for ignoring non-Cloudformation yaml/yml/json in a path', short: 'g', type: :boolean, required: false, default: false end end