1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
#!/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 <steve@bytemark.co.uk>
#
|