module Rex::Find
Public Class Methods
find(*paths) { |dup.taint| ... }
click to toggle source
Identical to Find.find
from Ruby, but follows symlinks to directories. See blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/68671
# File lib/rex/file.rb, line 122 def self.find(*paths) paths.collect!{|d| d.dup} while file = paths.shift catch(:prune) do yield file.dup.taint next unless File.exist? file begin if File.stat(file).directory? then d = Dir.open(file) begin for f in d next if f == "." or f == ".." if File::ALT_SEPARATOR and file =~ /^(?:[\/\\]|[A-Za-z]:[\/\\]?)$/ then f = file + f elsif file == "/" then f = "/" + f else f = File.join(file, f) end paths.unshift f.untaint end ensure d.close end end rescue Errno::ENOENT, Errno::EACCES end end end end
prune()
click to toggle source
# File lib/rex/file.rb, line 153 def self.prune throw :prune end