#!/usr/bin/ruby -rubygems # # Usage information at the end of the script. # require 'getoptlong' require 'custodian/settings' require 'custodian/queue' require 'custodian/worker' # # Entry-point to our code. # if __FILE__ == $PROGRAM_NAME help = false manual = false # # The settings object contains a lot of configuration-data. # settings = Custodian::Settings.instance begin opts = GetoptLong.new( ['--help', '-h', GetoptLong::NO_ARGUMENT], ['--manual', '-m', GetoptLong::NO_ARGUMENT], ['--fail', '-f', GetoptLong::NO_ARGUMENT], ['--single', '-s', GetoptLong::NO_ARGUMENT], ['--verbose', '-v', GetoptLong::NO_ARGUMENT] ) opts.each do |opt, _arg| case opt when '--verbose' then ENV['VERBOSE'] = '1' when '--single' then ENV['SINGLE'] = '1' when '--fail' then ENV['FAIL'] = '1' when '--help' then help = true when '--manual' then manual = true end end rescue StandardError => ex puts "Option parsing failed: #{ex}" exit end # # Show the help information. # if manual || help DATA.read.split("\n").each do |line| puts Regexp.last_match(1).dup if line =~ /^# ?(.*)/ end exit 0 end # # Create the worker, passing it the settings object so it can # sort out its own logfile, etc. # worker = Custodian::Worker.new(settings) # # Single step? # if ENV['SINGLE'] worker.process_single_job exit(0) end # # Run until we see a failure? # if ENV['FAIL'] worker.process_until_fail exit(0) end # # Otherwise loop indefinitely # worker.run! end __END__ # # NAME # custodian-dequeue - Execute network tests from the central queue. # # SYNOPSIS # custodian-dequeue [ -h | --help ] # [ -m | --manual] # [ -f | --fail ] # [ -s | --single ] # [ -v | --verbose ] # # OPTIONS # # -h, --help Show a help message, and exit. # # -m, --manual Show this manual, and exit. # # -s, --single Run a single test and exit. # # -f, --fail Stop running once a single test fails. # # -v, --verbose Be noisy. # # # ABOUT # # This tool is designed to pull network/protocol-tests from the central queue # and execute them one by one. # # The results of the testing will be sent to a notifier, where they can later # be acted upon. # # # AUTHOR # # Steve Kemp #