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
129
130
131
132
133
134
|
#!/usr/bin/ruby -rubygems
#
# Usage information at the end of the script.
#
require 'getoptlong'
require 'custodian/settings'
require 'custodian/queue'
require 'custodian/worker'
if RUBY_VERSION =~ /1.9/
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
end
#
# 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>
#
|