mvn2 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/mvn2 +2 -2
- data/lib/mvn2/plugin/avg.plugin.rb +11 -19
- data/lib/mvn2/plugin/filter.plugin.rb +4 -8
- data/lib/mvn2/plugin.rb +80 -97
- data/lib/mvn2/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bbe17e1824645491f53d325e16cbc27fd78fb92e
|
4
|
+
data.tar.gz: b80978a9c66ff6b807a0d0cfbc352a9b49cc1057
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac64c92c0b0fdde3ef7f241594065286d9f7e0949e94cf3f442407541d91cad908ee83e484612defaa91abf1220f33f8e763f6a8e301c0e1774390510b9511cc
|
7
|
+
data.tar.gz: d2aefc76312bb99b7346327d6f189914ab3dba2a6271574d1dc0aa935e50d6c4aef330904877d549fc9b6201795682f61d97c96c3d6fd506c6419537859e4369
|
data/bin/mvn2
CHANGED
@@ -36,8 +36,8 @@ class MyOptions
|
|
36
36
|
help_option ['--help'], desc: 'print out this help'
|
37
37
|
end
|
38
38
|
|
39
|
-
Mvn2::Plugins.get
|
40
|
-
Mvn2::Plugins.get
|
39
|
+
Mvn2::Plugins.get :option, MyOptions
|
40
|
+
Mvn2::Plugins.get :option_with_param, MyOptions
|
41
41
|
|
42
42
|
MyOptions.parse!
|
43
43
|
|
@@ -2,6 +2,7 @@ require 'mvn2/plugin'
|
|
2
2
|
class AvgPlugin
|
3
3
|
extend Mvn2::Plugin
|
4
4
|
extend Mvn2::PluginType
|
5
|
+
extend Mvn2::TypeHelper
|
5
6
|
|
6
7
|
register_variable :average
|
7
8
|
register_variable :averages2
|
@@ -17,9 +18,7 @@ class AvgPlugin
|
|
17
18
|
register_type(:block_average) { |list| basic_type(list) }
|
18
19
|
|
19
20
|
register_type(:block_update) { |list|
|
20
|
-
result
|
21
|
-
average = Mvn2::Plugins.get_var :average
|
22
|
-
diff = Mvn2::Plugins.get_var :diff
|
21
|
+
result, average, diff = Mvn2::Plugins.get_vars :result, :average, :diff
|
23
22
|
basic_type(list, result, average, diff)
|
24
23
|
}
|
25
24
|
|
@@ -90,10 +89,9 @@ class AvgPlugin
|
|
90
89
|
end
|
91
90
|
|
92
91
|
def self.read_advanced_avg
|
93
|
-
options
|
94
|
-
|
95
|
-
|
96
|
-
file_name = full_avg_file
|
92
|
+
options, average = Mvn2::Plugins.get_vars :options, :average
|
93
|
+
averages = [average]
|
94
|
+
file_name = full_avg_file
|
97
95
|
if !Mvn2::Plugins.get(:block_full_average) && options[:advanced_average] && File.exist?(file_name)
|
98
96
|
lines = IO.readlines(file_name)
|
99
97
|
data = lines.filtermap { |line| float_filter(line) }
|
@@ -134,24 +132,18 @@ class AvgPlugin
|
|
134
132
|
pkg = options[:package] ? 2 : 0
|
135
133
|
average = averages[(options[:skip_tests] ? 0 : 1) + pkg]
|
136
134
|
end
|
137
|
-
Mvn2::Plugins.
|
138
|
-
Mvn2::Plugins.set_var :averages2, averages
|
139
|
-
Mvn2::Plugins.set_var :counts, counts
|
135
|
+
Mvn2::Plugins.set_vars average: average, averages2: averages, counts: counts
|
140
136
|
end
|
141
137
|
|
142
138
|
def self.calc_new_avg(ind)
|
143
|
-
averages2
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
counts[ind] += 1
|
148
|
-
averages2[ind] = sum / counts[ind]
|
139
|
+
averages2, counts, diff = Mvn2::Plugins.get_vars :averages2, :counts, :diff
|
140
|
+
sum = averages2[ind] * counts[ind] + diff
|
141
|
+
counts[ind] += 1
|
142
|
+
averages2[ind] = sum / counts[ind]
|
149
143
|
end
|
150
144
|
|
151
145
|
def self.update_avg
|
152
|
-
options
|
153
|
-
averages2 = Mvn2::Plugins.get_var :averages2
|
154
|
-
counts = Mvn2::Plugins.get_var :counts
|
146
|
+
options, averages2, counts = Mvn2::Plugins.get_vars :options, :averages2, :counts
|
155
147
|
if !Mvn2::Plugins.get(:block_average) && !Mvn2::Plugins.get(:block_update)
|
156
148
|
options[:skip_tests] ? calc_new_avg(0) : calc_new_avg(1)
|
157
149
|
IO.write('avg.txt', "#{averages2[0]};#{counts[0]}\n#{averages2[1]};#{counts[1]}\n#{averages2[2]};#{counts[2]}\n#{averages2[3]};#{counts[3]}")
|
@@ -26,8 +26,7 @@ class FilterPlugin
|
|
26
26
|
str = ''
|
27
27
|
str << INFO_LINE << "\n" unless info_line_last
|
28
28
|
str << line << "\n"
|
29
|
-
Mvn2::Plugins.
|
30
|
-
Mvn2::Plugins.set_var :info_line_last, false
|
29
|
+
Mvn2::Plugins.set_vars found: true, info_line_last: false
|
31
30
|
str
|
32
31
|
else
|
33
32
|
nil
|
@@ -37,8 +36,7 @@ class FilterPlugin
|
|
37
36
|
register(:line_filter, priority: 20) { |_, line|
|
38
37
|
if line.start_with_any?('[ERROR] COMPILATION ERROR :', 'Results :')
|
39
38
|
str = line << "\n"
|
40
|
-
Mvn2::Plugins.
|
41
|
-
Mvn2::Plugins.set_var :info_line_last, false
|
39
|
+
Mvn2::Plugins.set_vars found: true, info_line_last: false
|
42
40
|
str
|
43
41
|
else
|
44
42
|
nil
|
@@ -49,8 +47,7 @@ class FilterPlugin
|
|
49
47
|
found = Mvn2::Plugins.get_var :found
|
50
48
|
if found
|
51
49
|
str = line << "\n"
|
52
|
-
Mvn2::Plugins.
|
53
|
-
Mvn2::Plugins.set_var :info_line_last, line.start_with?(INFO_LINE)
|
50
|
+
Mvn2::Plugins.set_vars found: true, info_line_last: line.start_with?(INFO_LINE)
|
54
51
|
str
|
55
52
|
else
|
56
53
|
nil
|
@@ -61,8 +58,7 @@ class FilterPlugin
|
|
61
58
|
found = Mvn2::Plugins.get_var :found
|
62
59
|
if options[:hide_between] && found && line.start_with?('Tests run:')
|
63
60
|
str = line << "\n\n"
|
64
|
-
Mvn2::Plugins.
|
65
|
-
Mvn2::Plugins.set_var :info_line_last, false
|
61
|
+
Mvn2::Plugins.set_vars found: false, info_line_last: false
|
66
62
|
str
|
67
63
|
else
|
68
64
|
nil
|
data/lib/mvn2/plugin.rb
CHANGED
@@ -43,17 +43,33 @@ module Mvn2
|
|
43
43
|
@vars[name] || nil
|
44
44
|
end
|
45
45
|
|
46
|
+
def get_vars(*names)
|
47
|
+
names.map { |name| get_var(name) }
|
48
|
+
end
|
49
|
+
|
46
50
|
def set_var(name, value)
|
47
51
|
@vars[name] = value
|
48
52
|
end
|
49
53
|
|
54
|
+
def set_vars(vars = {})
|
55
|
+
vars.each { |v| set_var(*v) }
|
56
|
+
end
|
57
|
+
|
50
58
|
def self.get_var(name)
|
51
59
|
instance.get_var(name)
|
52
60
|
end
|
53
61
|
|
62
|
+
def self.get_vars(*names)
|
63
|
+
instance.get_vars(*names)
|
64
|
+
end
|
65
|
+
|
54
66
|
def self.set_var(name, value)
|
55
67
|
instance.set_var(name, value)
|
56
68
|
end
|
69
|
+
|
70
|
+
def self.set_vars(vars = {})
|
71
|
+
instance.set_vars(vars)
|
72
|
+
end
|
57
73
|
end
|
58
74
|
module Plugin
|
59
75
|
def register(type, options = {}, &block)
|
@@ -68,20 +84,51 @@ module Mvn2
|
|
68
84
|
def register_variable(name, value = nil)
|
69
85
|
Mvn2::Plugins.instance.register_variable(name, value)
|
70
86
|
end
|
71
|
-
|
87
|
+
end
|
88
|
+
module TypeHelper
|
72
89
|
def basic_type(list, *args)
|
73
90
|
options = Mvn2::Plugins.get_var :options
|
74
91
|
list.any? { |item|
|
75
92
|
if item[:block].nil?
|
76
|
-
|
93
|
+
flag_boolean(item, options)
|
77
94
|
else
|
78
95
|
item[:block].call(options, *args)
|
79
96
|
end
|
80
97
|
}
|
81
98
|
end
|
99
|
+
|
100
|
+
def flag_boolean(item, options)
|
101
|
+
item[:options].has_key?(:option) && options[item[:options][:option]] == (item[:options].has_key?(:value) ? item[:options][:value] : true)
|
102
|
+
end
|
103
|
+
|
104
|
+
def complex_filter(list, options, symbol)
|
105
|
+
list.filtermap { |item|
|
106
|
+
if item[:block].nil?
|
107
|
+
if item[:options].has_key?(symbol) && flag_boolean(item, options)
|
108
|
+
item[:options][symbol]
|
109
|
+
else
|
110
|
+
item[:options].has_key?(:option) && !options[item[:options][:option]].nil? ? options[item[:options][:option]] : false
|
111
|
+
end
|
112
|
+
else
|
113
|
+
rval = item[:block].call(options)
|
114
|
+
(rval.nil? || !rval) ? false : rval
|
115
|
+
end
|
116
|
+
}
|
117
|
+
end
|
118
|
+
|
119
|
+
def simple_type(list, *args)
|
120
|
+
options = Mvn2::Plugins.get_var :options
|
121
|
+
list.sort_by { |v| v[:options][:order] }.each { |item| item[:block].call(options, *args) }
|
122
|
+
end
|
123
|
+
|
124
|
+
def simple_type_with_result(list)
|
125
|
+
result = Mvn2::Plugins.get_var :result
|
126
|
+
simple_type(list, result)
|
127
|
+
end
|
82
128
|
end
|
83
129
|
class DefaultTypes
|
84
130
|
extend Mvn2::PluginType
|
131
|
+
extend Mvn2::TypeHelper
|
85
132
|
|
86
133
|
register_variable :options
|
87
134
|
register_variable :result
|
@@ -100,16 +147,19 @@ module Mvn2
|
|
100
147
|
}
|
101
148
|
end
|
102
149
|
|
103
|
-
|
150
|
+
def self.def_options
|
151
|
+
register_type(:option) { |list, options| register_option(list, options) { |id, names, option| options.option id, names, option[:options] } }
|
152
|
+
register_type(:option_with_param) { |list, options| register_option(list, options) { |id, names, option| options.option_with_param id, names, option[:options] } }
|
153
|
+
end
|
104
154
|
|
105
|
-
|
155
|
+
def_options
|
106
156
|
|
107
157
|
register_type(:command_flag) { |list|
|
108
158
|
options = Mvn2::Plugins.get_var :options
|
109
159
|
flags = []
|
110
160
|
list.each { |flag|
|
111
161
|
if flag[:block].nil?
|
112
|
-
flags << " #{flag[:options][:flag]}" if
|
162
|
+
flags << " #{flag[:options][:flag]}" if flag_boolean(flag, options)
|
113
163
|
else
|
114
164
|
flag[:block].call(options, flags)
|
115
165
|
end
|
@@ -117,64 +167,32 @@ module Mvn2
|
|
117
167
|
flags.join
|
118
168
|
}
|
119
169
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
register_type(:before_start) { |list|
|
132
|
-
options = Mvn2::Plugins.get_var :options
|
133
|
-
list.sort_by { |v| v[:options][:order] }.each { |item| item[:block].call(options) }
|
134
|
-
}
|
135
|
-
|
136
|
-
register_type(:after_end) { |list|
|
137
|
-
options = Mvn2::Plugins.get_var :options
|
138
|
-
result = Mvn2::Plugins.get_var :result
|
139
|
-
list.sort_by { |v| v[:options][:order] }.each { |item| item[:block].call(options, result) }
|
140
|
-
}
|
170
|
+
def self.def_actions
|
171
|
+
register_type(:before_run) { |list| simple_type(list) }
|
172
|
+
register_type(:after_run) { |list| simple_type_with_result(list) }
|
173
|
+
register_type(:before_start) { |list| simple_type(list) }
|
174
|
+
register_type(:after_end) { |list| simple_type_with_result(list) }
|
175
|
+
register_type(:notification) { |list|
|
176
|
+
options, result, cmd_clean, message_text = Mvn2::Plugins.get_vars :options, :result, :cmd_clean, :message_text
|
177
|
+
list.sort_by { |v| v[:options][:order] }.each { |item| item[:block].call(options, result, cmd_clean, message_text) }
|
178
|
+
}
|
179
|
+
end
|
141
180
|
|
142
|
-
|
143
|
-
options = Mvn2::Plugins.get_var :options
|
144
|
-
result = Mvn2::Plugins.get_var :result
|
145
|
-
cmd_clean = Mvn2::Plugins.get_var :cmd_clean
|
146
|
-
message_text = Mvn2::Plugins.get_var :message_text
|
147
|
-
list.sort_by { |v| v[:options][:order] }.each { |item| item[:block].call(options, result, cmd_clean, message_text) }
|
148
|
-
}
|
181
|
+
def_actions
|
149
182
|
|
150
|
-
|
183
|
+
def self.get_name(list)
|
151
184
|
options = Mvn2::Plugins.get_var :options
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
if item[:options].has_key?(:name) && item[:options].has_key?(:option) && options[item[:options][:option]] == (item[:options].has_key?(:value) ? item[:options][:value] : true)
|
156
|
-
name = item[:options][:name]
|
157
|
-
break
|
158
|
-
elsif item[:options].has_key?(:option) && !options[item[:options][:option]].nil?
|
159
|
-
name = options[item[:options][:option]]
|
160
|
-
break
|
161
|
-
end
|
162
|
-
else
|
163
|
-
rval = item[:block].call(options)
|
164
|
-
unless rval.nil?
|
165
|
-
name = rval
|
166
|
-
break
|
167
|
-
end
|
168
|
-
end
|
169
|
-
}
|
170
|
-
name
|
171
|
-
}
|
185
|
+
rval = complex_filter(list.sort_by { |v| -v[:options][:priority] }, options, :name)
|
186
|
+
(rval.nil? || rval.empty?) ? false : rval.first
|
187
|
+
end
|
172
188
|
|
173
|
-
|
189
|
+
def self.def_logs
|
190
|
+
register_type(:log_file_name) { |list| get_name(list) }
|
191
|
+
register_type(:log_file_disable) { |list| basic_type(list) }
|
192
|
+
register_type(:log_file_enable) { |list| (Mvn2::Plugins.get(:log_file_name).nil? || Mvn2::Plugins.get(:log_file_disable)) ? false : basic_type(list) }
|
193
|
+
end
|
174
194
|
|
175
|
-
|
176
|
-
(Mvn2::Plugins.get(:log_file_name).nil? || Mvn2::Plugins.get(:log_file_disable)) ? false : basic_type(list)
|
177
|
-
}
|
195
|
+
def_logs
|
178
196
|
|
179
197
|
register_type(:line_filter) { |list, line|
|
180
198
|
options = Mvn2::Plugins.get_var :options
|
@@ -197,8 +215,7 @@ module Mvn2
|
|
197
215
|
register_type(:runner_enable) { |list, key| basic_type(list.select { |v| v[:options][:key] == key }) }
|
198
216
|
|
199
217
|
register_type(:runner) { |list|
|
200
|
-
options = Mvn2::Plugins.
|
201
|
-
cmd = Mvn2::Plugins.get_var :cmd
|
218
|
+
options, cmd = Mvn2::Plugins.get_vars :options, :cmd
|
202
219
|
Mvn2::Plugins.set_var :result, false
|
203
220
|
list.sort_by { |v| -v[:options][:priority] }.each { |item|
|
204
221
|
if Mvn2::Plugins.get(:runner_enable, item[:options][:key])
|
@@ -210,24 +227,11 @@ module Mvn2
|
|
210
227
|
Mvn2::Plugins.get_var :result
|
211
228
|
}
|
212
229
|
|
213
|
-
def self.goal_filter(item, options)
|
214
|
-
if item[:block].nil?
|
215
|
-
if item[:options].has_key?(:goal) && item[:options].has_key?(:option) && options[item[:options][:option]] == (item[:options].has_key?(:value) ? item[:options][:value] : true)
|
216
|
-
item[:options][:goal]
|
217
|
-
else
|
218
|
-
item[:options].has_key?(:option) && !options[item[:options][:option]].nil? ? options[item[:options][:option]] : false
|
219
|
-
end
|
220
|
-
else
|
221
|
-
rval = item[:block].call(options)
|
222
|
-
(rval.nil? || !rval) ? false : rval
|
223
|
-
end
|
224
|
-
end
|
225
|
-
|
226
230
|
register_type(:goal_override) { |list|
|
227
231
|
options = Mvn2::Plugins.get_var :options
|
228
|
-
full_overrides = list.select { |v| v[:options][:override_all] }.sort_by { |v| -v[:options][:priority] }
|
232
|
+
full_overrides = complex_filter(list.select { |v| v[:options][:override_all] }.sort_by { |v| -v[:options][:priority] }, options, :goal)
|
229
233
|
if full_overrides.nil? || full_overrides.empty?
|
230
|
-
goals = list.select { |v| !v[:options][:override_all] }.sort_by { |v| v[:options][:order] }
|
234
|
+
goals = complex_filter(list.select { |v| !v[:options][:override_all] }.sort_by { |v| v[:options][:order] }, options, :goal)
|
231
235
|
goals = ['install'] if (goals - ['clean']).empty?
|
232
236
|
goals = ['clean'] + goals unless goals.include?('clean')
|
233
237
|
goals.join(' ')
|
@@ -236,28 +240,7 @@ module Mvn2
|
|
236
240
|
end
|
237
241
|
}
|
238
242
|
|
239
|
-
register_type(:operation_name) { |list|
|
240
|
-
options = Mvn2::Plugins.get_var :options
|
241
|
-
name = false
|
242
|
-
list.sort_by { |v| -v[:options][:priority] }.each { |item|
|
243
|
-
if item[:block].nil?
|
244
|
-
if item[:options].has_key?(:name) && item[:options].has_key?(:option) && options[item[:options][:option]] == (item[:options].has_key?(:value) ? item[:options][:value] : true)
|
245
|
-
name = item[:options][:name]
|
246
|
-
break
|
247
|
-
elsif item[:options].has_key?(:option) && !options[item[:options][:option]].nil?
|
248
|
-
name = options[item[:options][:option]]
|
249
|
-
break
|
250
|
-
end
|
251
|
-
else
|
252
|
-
rval = item[:block].call(options)
|
253
|
-
unless rval.nil? || !rval
|
254
|
-
name = rval
|
255
|
-
break
|
256
|
-
end
|
257
|
-
end
|
258
|
-
}
|
259
|
-
name || 'Operation'
|
260
|
-
}
|
243
|
+
register_type(:operation_name) { |list| get_name(list) || 'Operation' }
|
261
244
|
|
262
245
|
DEFAULT_COLOR_OPTS = {
|
263
246
|
time: {
|
data/lib/mvn2/version.rb
CHANGED