Parent

Methods

OptionsParser

Public Class Methods

parse(args) click to toggle source

Return a structure describing the options.

# File ods-auditor, line 39
def self.parse(args)
  # The options specified on the command line will be collected in *options*.
  # We set default values here.
  path = "/etc/opendnssec"
  options = OpenStruct.new
  options.enable_timeshift = false
  options.default_conf_file = path + "/conf.xml"
  options.zone_name = nil
  options.signed_temp = nil
  options.unsigned_file = nil
  options.force_full = false
  options.force_partial = false

  opts = OptionParser.new do |opts|
    opts.banner = "Usage: ods-auditor [options]"

    opts.separator ""
    opts.separator "Specific options:"

    # conf.xml
    opts.on("-c", "--conf [PATH_TO_CONF_FILE]",
            "Path to OpenDNSSEC configuration file",
            "  (defaults to " + options.default_conf_file + ")") do |ext|
      options.conf_file = ext
    end

    # kasp.xml
    opts.on("-k", "--kasp [PATH_TO_KASP_FILE]",
            "Path to KASP policy file",
            "  (defaults to the path given in the configuration file)") do |ext|
      options.kasp_file = ext
    end

    # zone_name
    opts.on("-z", "--zone [ZONE_NAME]",
            "Single zone to audit",
            "  (defaults to audit all zones)") do |ext|
      options.zone_name = ext.chomp(".")
    end

    # signed_temp
    opts.on("-s", "--signed [PATH_TO_SIGNED_FILE]",
            "If a single zone is specified, then this option may override",
            "  the specified signed file with another.",
            "  (defaults to the path given in the zone list)") do |ext|
      options.signed_temp = ext
    end

    # unsigned_zone
    opts.on("-u", "--unsigned [PATH_TO_UNSIGNED_FILE]",
            "If a single zone is specified, then this option may override",
            "  the specified unsigned file with another.",
            "  (defaults to the path given in the zone list)") do |ext|
      options.unsigned_zone = ext
    end

    # Force full audit
    opts.on("-f", "--full", "Force a full audit") do |ff|
       options.force_full = ff
    end

    # Force partial audit
    opts.on("-p", "--partial", "Force a partial audit") do |fp|
       options.force_partial = fp
    end


    opts.on("-v", "--version", # Override default
           "Display version information") do |x|
       print "1.3.9\n"
       exit(1)
    end



    opts.separator ""
    opts.separator "Common options:"

    # No argument, shows at tail.  This will print an options summary.
    # Try it and see!
    opts.on_tail("-h", "-?", "--help", "Show this message") do
      puts opts
      exit(1)
    end

  end

  begin
    opts.parse!(args)
  rescue OptionParser::InvalidOption => e
    print "#{e}\n"
    puts opts
    exit(1)
  end
  options
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.