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
|
# File 'lib/bunnish/core/common.rb', line 3
def self.parse_opts(argv)
host = 'localhost'
port = 5672
user = 'guest'
password = 'guest'
durable = false
ack = true
raise_exception_flag = false
exchange_name = nil
delimiter = nil
consumer_tag = nil
exclusive = false
message_max = nil
timeout = 1
unit_size = nil
weight_second = 1
retry_max_count = 5
min_size = nil
current_all_flag = false
warn_size = nil
error_size = nil
log_label = nil
log_dir = nil
log_path = nil
verbose_flag = false
next_argv = []
while 0 < argv.size do
val = argv.shift
case val
when '-h'
host = argv.shift
when '-p'
port = argv.shift.to_i
when '-u'
user = argv.shift
when '-P'
password = argv.shift
when '--ack'
ack = (argv.shift == 't')
when '--delimiter'
delimiter = argv.shift
when '--durable'
durable = (argv.shift == 't')
when '--exchange-name'
exchange_name = argv.shift
when '--unit-size'
unit_size = argv.shift.to_i
when '--weight'
weight_second = argv.shift.to_f / 1000
when '--retry'
retry_max_count = argv.shift.to_i
when '--log-label'
log_label = argv.shift
log_label = "[#{log_label}]"
when '--log-dir'
log_dir = argv.shift
when '--log-file'
log_path = argv.shift
when '--raise-exception'
raise_exception_flag = true
when '--consumer-tag'
consumer_tag = argv.shift
when '--timeout'
timeout = argv.shift.to_i
when '--exclusive'
exclusive = (argv.shift == 't')
when '--message-max'
message_max = argv.shift
when '--current-all'
current_all_flag = true
when '--min-size'
min_size = argv.shift.to_i
when '--empty-list-max'
empty_list_max = argv.shift.to_i
when '--warn'
warn_size = argv.shift.to_i
when '--error'
error_size = argv.shift.to_i
when '--verbose'
verbose_flag = true
else
next_argv.push val
end
end
argv.push(*next_argv)
if verbose_flag then
Bunnish.logger.level = Logger::INFO
else
Bunnish.logger.level = Logger::WARN
end
return {
:host=>host,
:port=>port,
:user=>user,
:password=>password,
:durable=>durable,
:ack=>ack,
:exchange_name=>exchange_name,
:unit_size=>unit_size,
:weight_second=>weight_second,
:retry_max_count=>retry_max_count,
:raise_exception_flag=>raise_exception_flag,
:delimiter=>delimiter,
:log_label=>log_label,
:log_dir=>log_dir,
:log_path=>log_path,
:consumer_tag=>consumer_tag,
:timeout=>timeout,
:exclusive=>exclusive,
:message_max=>message_max,
:current_all_flag=>current_all_flag,
:min_size=>min_size,
:empty_list_max=>empty_list_max,
:warn_size=>warn_size,
:error_size=>error_size,
:verbose_flag=>verbose_flag
}
end
|