inspec/lib/fetchers/local.rb

46 lines
906 B
Ruby
Raw Normal View History

2016-02-21 01:02:39 +00:00
# encoding: utf-8
# author: Dominik Richter
# author: Christoph Hartmann
module Fetchers
class Local < Inspec.fetcher(1)
name 'local'
priority 0
attr_reader :files
def self.resolve(target)
return nil unless target.is_a?(String)
# Support "urls" in the form of file://
if target.start_with?('file://')
target = target.gsub(%r{^file://}, '')
else
# support for windows paths
target = target.tr('\\', '/')
end
if !File.exist?(target)
nil
else
new(target)
end
2016-02-21 01:02:39 +00:00
end
def initialize(target)
@target = target
2016-02-21 01:02:39 +00:00
if File.file?(target)
@files = [target]
else
@files = Dir[File.join(target, '**', '*')]
end
end
def read(file)
return nil unless files.include?(file)
return nil unless File.file?(file)
File.read(file)
end
end
end