#!@RUBY@ -I@OPENDNSSEC_LIB_DIR@ # # $Id$ # # Copyright (c) 2009 Nominet UK. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # require 'kasp_checker.rb' require 'optparse' require 'ostruct' include KASPChecker class OptionsParser # # Return a structure describing the options. # def self.parse(args) # The options specified on the command line will be collected in *options*. # We set default values here. path = "@OPENDNSSEC_CONFIG_DIR@" options = OpenStruct.new options.rng_path = "@OPENDNSSEC_SCHEMA_DIR@" options.xmllint = "@XMLLINT@" options.default_conf_file = path + "/conf.xml" opts = OptionParser.new do |opts| opts.banner = "Usage: ods-kaspcheck [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 opts.on("-v", "--version", # Override default "Display version information") do |x| print "@VERSION@\n" exit 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 end end begin opts.parse!(args) rescue OptionParser::InvalidOption => e print "#{e}\n" puts opts exit(1) end options end # parse() end checker = Checker.new options = OptionsParser.parse(ARGV) if (options.conf_file) checker.conf_file = options.conf_file else checker.conf_file = options.default_conf_file end if (options.kasp_file) checker.kasp_file = options.kasp_file end checker.rng_path = options.rng_path checker.xmllint = options.xmllint checker.check()