203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
|
# File 'lib/inspec/profile.rb', line 203
def filter_controls(controls_array, include_list)
return controls_array if include_list.nil? || include_list.empty?
include_list.each_with_index do |inclusion, index|
next if inclusion.is_a?(Regexp)
next unless inclusion.start_with?('/') && inclusion.end_with?('/')
inclusion = inclusion[1..-2]
begin
re = Regexp.new(inclusion)
include_list[index] = re
rescue RegexpError => e
warn "Ignoring unparseable regex '/#{inclusion}/' in --control CLI option: #{e.message}"
include_list[index] = nil
end
end
include_list.compact!
controls_array.select do |c|
id = ::Inspec::Rule.rule_id(c)
include_list.any? do |inclusion|
inclusion == id || (inclusion.is_a?(Regexp) && inclusion =~ id)
end
end
end
|