summaryrefslogtreecommitdiff
path: root/bin/custodian-dequeue
diff options
context:
space:
mode:
authorSteve Kemp <steve@steve.org.uk>2015-03-09 14:41:06 +0000
committerSteve Kemp <steve@steve.org.uk>2015-03-09 14:41:06 +0000
commitff910ae9491d81085e25d289f61cec72e96e57ef (patch)
treeedde89d4623712e0922decf8bed7d33a5fdeeb23 /bin/custodian-dequeue
parent9089df1e48a02347753328d60653f4c49092cf2b (diff)
Moved usage-information to foot of script.
This removes the nasty self-parsing of the script to generate the help/manual output. I've also removed global-variables and made the code almost-100% warning free.
Diffstat (limited to 'bin/custodian-dequeue')
-rwxr-xr-xbin/custodian-dequeue153
1 files changed, 62 insertions, 91 deletions
diff --git a/bin/custodian-dequeue b/bin/custodian-dequeue
index d49049e..bc84adf 100755
--- a/bin/custodian-dequeue
+++ b/bin/custodian-dequeue
@@ -1,66 +1,20 @@
-#!/usr/bin/ruby -Ilib/ -I../lib/ -rubygems
-#
-# NAME
-# custodian-dequeue - Pull network tests from a queue and execute them in series.
-#
-# 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.
+#!/usr/bin/ruby -rubygems
#
+# Usage information at the end of the script.
#
-# AUTHOR
-#
-# Steve Kemp <steve@bytemark.co.uk>
-#
-
-#
-# Standard modules
-#
require 'getoptlong'
-
-
-#
-# Our code.
-#
require 'custodian/settings'
require 'custodian/queue'
require 'custodian/worker'
-
-
-
#
# Entry-point to our code.
#
-if __FILE__ == $PROGRAM_NAME then
+if __FILE__ == $PROGRAM_NAME
- $help = false
- $manual = false
+ help = false
+ manual = false
#
# The settings object contains a lot of configuration-data.
@@ -69,24 +23,24 @@ if __FILE__ == $PROGRAM_NAME then
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]
+ ['--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|
+ opts.each do |opt, _arg|
case opt
when '--verbose' then
- ENV['VERBOSE'] = '1'
+ ENV['VERBOSE'] = '1'
when '--single' then
- ENV['SINGLE'] = '1'
+ ENV['SINGLE'] = '1'
when '--fail' then
- ENV['FAIL'] = '1'
+ ENV['FAIL'] = '1'
when '--help' then
- $help = true
+ help = true
when '--manual' then
- $manual = true
+ manual = true
end
end
rescue StandardError => ex
@@ -94,49 +48,26 @@ if __FILE__ == $PROGRAM_NAME then
exit
end
-
-
#
- # CAUTION! Here be quality kode.
+ # Show the help information.
#
- if $manual or $help
-
- # Open the file, stripping the shebang line
- lines = File.open(__FILE__){|fh| fh.readlines}[1..-1]
-
- found_synopsis = false
-
- lines.each do |line|
-
- line.chomp!
- break if line.empty?
-
- if $help and !found_synopsis
- found_synopsis = (line =~ /^#\s+SYNOPSIS\s*$/)
- next
- end
-
- puts line[2..-1].to_s
-
- break if $help and found_synopsis and line =~ /^#\s*$/
-
+ 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']
+ if ENV['SINGLE']
worker.process_single_job
exit(0)
end
@@ -144,7 +75,7 @@ if __FILE__ == $PROGRAM_NAME then
#
# Run until we see a failure?
#
- if ENV['FAIL']
+ if ENV['FAIL']
worker.process_until_fail
exit(0)
end
@@ -155,3 +86,43 @@ if __FILE__ == $PROGRAM_NAME then
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 <steve@bytemark.co.uk>
+#