Class: Abide::CLI::PuppetCoverageCommand
- Inherits:
 - 
      AbideCommand
      
        
- Object
 - CmdParse::Command
 - AbideCommand
 - Abide::CLI::PuppetCoverageCommand
 
 
- Defined in:
 - lib/abide_dev_utils/cli/puppet.rb
 
Constant Summary collapse
- CMD_NAME =
 'coverage'- CMD_SHORT =
 'Generates control coverage report'- CMD_LONG =
 'Generates report of valid Puppet classes that match with Hiera controls'- CMD_CLASS_DIR =
 'Directory that holds Puppet manifests'- CMD_HIERA_FILE =
 'Hiera file generated from an XCCDF'
Constants included from AbideDevUtils::Config
AbideDevUtils::Config::DEFAULT_PATH
Instance Method Summary collapse
- #execute(class_dir, hiera_file) ⇒ Object
 - #help_arguments ⇒ Object
 - 
  
    
      #initialize  ⇒ PuppetCoverageCommand 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of PuppetCoverageCommand.
 
Methods inherited from AbideCommand
Methods included from AbideDevUtils::Config
config_section, #config_section, fetch, #fetch, to_h, #to_h
Constructor Details
#initialize ⇒ PuppetCoverageCommand
Returns a new instance of PuppetCoverageCommand.
      30 31 32 33 34 35  | 
    
      # File 'lib/abide_dev_utils/cli/puppet.rb', line 30 def initialize super(CMD_NAME, CMD_SHORT, CMD_LONG, takes_commands: false) argument_desc(CLASS_DIR: CMD_CLASS_DIR, HIERA_FILE: CMD_HIERA_FILE) .on('-o [FILE]', '--out-file [FILE]', 'Path to save the coverage report') { |f| @data[:file] = f } .on('-p [PROFILE]', '--profile [PROFILE]', 'Generate only for profile') { |p| @data[:profile] = p } end  | 
  
Instance Method Details
#execute(class_dir, hiera_file) ⇒ Object
      46 47 48 49 50 51 52 53 54 55 56 57 58 59  | 
    
      # File 'lib/abide_dev_utils/cli/puppet.rb', line 46 def execute(class_dir, hiera_file) require 'abide_dev_utils/ppt/coverage' Abide::CLI::VALIDATE.directory(class_dir) Abide::CLI::VALIDATE.file(hiera_file) coverage = AbideDevUtils::Ppt.generate_coverage_report(class_dir, hiera_file, @data[:profile]) coverage.each do |k, v| next if k.match?(/classes|benchmark/) Abide::CLI::OUTPUT.simple("#{k} coverage: #{v[:coverage]}%") end return if @data[:file].nil? Abide::CLI::OUTPUT.json(coverage, file: @data[:file]) end  | 
  
#help_arguments ⇒ Object
      37 38 39 40 41 42 43 44  | 
    
      # File 'lib/abide_dev_utils/cli/puppet.rb', line 37 def help_arguments <<~ARGHELP Arguments: CLASS_DIR #{CMD_CLASS_DIR} HIERA_FILE #{CMD_HIERA_FILE} ARGHELP end  |