lib/rex/zip/samples/recursive.rb in librex-0.0.68 vs lib/rex/zip/samples/recursive.rb in librex-0.0.70
- old
+ new
@@ -1,11 +1,10 @@
-#!/usr/bin/env ruby
# -*- coding: binary -*-
msfbase = __FILE__
while File.symlink?(msfbase)
- msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase))
+ msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase))
end
inc = File.dirname(msfbase) + '/../../..'
$:.unshift(inc)
require 'rex/zip'
@@ -13,45 +12,45 @@
out = "test.zip"
dir = "/var/www"
def add_file(zip, path)
- zip.add_file(path)
+ zip.add_file(path)
end
#
# If it's a directory, Walk the directory and add each item
#
def add_files(zip, path, recursive = nil)
- if (not add_file(zip, path))
- return nil
- end
+ if (not add_file(zip, path))
+ return nil
+ end
- if (recursive and File.stat(path).directory?)
- begin
- dir = Dir.open(path)
- rescue
- # skip this file
- return nil
- end
+ if (recursive and File.stat(path).directory?)
+ begin
+ dir = Dir.open(path)
+ rescue
+ # skip this file
+ return nil
+ end
- dir.each { |f|
- next if (f == '.')
- next if (f == '..')
+ dir.each { |f|
+ next if (f == '.')
+ next if (f == '..')
- full_path = path + '/' + f
- st = File.stat(full_path)
- if (st.directory?)
- puts "adding dir #{full_path}"
- add_files(zip, full_path, recursive)
- elsif (st.file?)
- puts "adding file #{full_path}"
- add_file(zip, full_path)
- end
- }
- end
+ full_path = path + '/' + f
+ st = File.stat(full_path)
+ if (st.directory?)
+ puts "adding dir #{full_path}"
+ add_files(zip, full_path, recursive)
+ elsif (st.file?)
+ puts "adding file #{full_path}"
+ add_file(zip, full_path)
+ end
+ }
+ end
end
zip = Rex::Zip::Archive.new
add_files(zip, dir, TRUE)