inspec/lib/utils/find_files.rb

37 lines
805 B
Ruby
Raw Normal View History

# encoding: utf-8
# copyright: 2015, Vulcano Security GmbH
# license: All rights reserved
2015-10-06 16:55:44 +00:00
# author: Dominik Richter
# author: Christoph Hartmann
module FindFiles
TYPES = {
block: 'b',
character: 'c',
directory: 'd',
pipe: 'p',
file: 'f',
link: 'l',
socket: 's',
door: 'D',
}
def find_files(path, opts = {})
depth = opts[:depth]
2015-09-05 14:07:54 +00:00
type = TYPES[opts[:type].to_sym]
cmd = "find #{path}"
cmd += " -maxdepth #{depth.to_i}" if depth.to_i > 0
cmd += " -type #{type}" unless type.nil?
2015-10-26 03:04:18 +00:00
result = inspec.run_command(cmd)
exit_status = result.exit_status
return [nil, exit_status] unless exit_status == 0
2015-10-26 03:39:16 +00:00
files = result.stdout.split("\n")
.map(&:strip)
.find_all { |x| !x.empty? }
[files, exit_status]
end
end