class ScaBox::ContainerScanner

Public Class Methods

new(params) click to toggle source
Calls superclass method
# File lib/scabox_sdk/container.rb, line 8
def initialize(params)
  super(params)
end

Public Instance Methods

parse_opts(args) click to toggle source
# File lib/scabox_sdk/container.rb, line 25
def parse_opts(args)
  @opts = OpenStruct.new
  @opts.image_name  = nil
  @opts.image_file  = nil
  @opts.output      = nil
  @opts.format      = :json
  @opts.verbose     = false
  @opts.info        = false
  @opts.color       = true
  @opts.output_stdout = false


  opt_parser = OptionParser.new do |opts|
    opts.on('-n', '--image-name=IMAGE_NAME', 'Name of image to be scanned') do |image_name|
      @opts.image_name = image_name
    end

    opts.on('-p', '--image-file=IMAGE_PATH', 'Path of image to be scanned') do |image_file|
      @opts.image_file = image_file
    end

    opts.on('-f', '--format=FORMAT', 'Format to save result (json or txt)') do |f|
      @opts.format = f.to_sym
    end

    opts.on('-o', '--output=OUTPUT', 'File to save result') do |output|
      @opts.output = output
    end

    opts.on('--output-stdout', 'Print result to stdout') do
      @opts.output_stdout = true
    end

    opts.on("-v", '--[no-]verbose', 'Run verbosely') do |v|
      @opts.verbose = v
    end

    opts.on("-i", '--info', 'Info about the scanner') do
      @opts.info = true
    end

    opts.on('', '--[no-]color', 'Enable/disable coloring') do |v|
      @opts.color = v
      enable_color(@opts.color)
    end
  end

  opt_parser.parse!(args)
  print_debug(@opts.inspect) if @opts.verbose
  @opts
end
run() click to toggle source
# File lib/scabox_sdk/container.rb, line 12
def run
  parse_opts(ARGV)
  check_info_flag

  if @opts.image_name.nil? and @opts.image_file.nil?
    print_error("No image passed")
    exit 1
  end

  check_output_flag
  start_scan
end