Sha256: b095590db10595f0709dea4ec228b68e944a80e57f0bb67f3cbfbae577198c36

Contents?: true

Size: 1.04 KB

Versions: 21

Compression:

Stored size: 1.04 KB

Contents

# -*- coding: binary -*-

msfbase = __FILE__
while File.symlink?(msfbase)
  msfbase = File.expand_path(File.readlink(msfbase), File.dirname(msfbase))
end
inc = File.dirname(msfbase) + '/../../..'
$:.unshift(inc)

require 'rex/zip'

out = "test.zip"
dir = "/var/www"


def add_file(zip, 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 (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 == '..')

      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)
zip.save_to(out)

Version data entries

21 entries across 21 versions & 4 rubygems

Version Path
rex-zip-0.1.5 lib/rex/zip/samples/recursive.rb
rex-zip-0.1.4 lib/rex/zip/samples/recursive.rb
rex-2.0.13 lib/rex/zip/samples/recursive.rb
rex-2.0.12 lib/rex/zip/samples/recursive.rb
rex-2.0.11 lib/rex/zip/samples/recursive.rb
rex-zip-0.1.3 lib/rex/zip/samples/recursive.rb
rex-zip-0.1.2 lib/rex/zip/samples/recursive.rb
rex-zip-0.1.1 lib/rex/zip/samples/recursive.rb
rex-zip-0.1.0 lib/rex/zip/samples/recursive.rb
rex-2.0.10 lib/rex/zip/samples/recursive.rb
rex-2.0.9 lib/rex/zip/samples/recursive.rb
rex-2.0.8 lib/rex/zip/samples/recursive.rb
rex-2.0.7 lib/rex/zip/samples/recursive.rb
rex-2.0.5 lib/rex/zip/samples/recursive.rb
rex-2.0.4 lib/rex/zip/samples/recursive.rb
dstruct-0.0.1 lib/rex/zip/samples/recursive.rb
rex-2.0.3 lib/rex/zip/samples/recursive.rb
librex-0.0.999 lib/rex/zip/samples/recursive.rb
rex-2.0.2 lib/rex/zip/samples/recursive.rb
librex-0.0.71 lib/rex/zip/samples/recursive.rb