add a Jar class to Rex::Zip

git-svn-id: file:///home/svn/framework3/trunk@10057 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
James Lee 2010-08-19 17:08:29 +00:00
parent d5149b8e23
commit d9337f3cca
1 changed files with 21 additions and 0 deletions

View File

@ -9,6 +9,7 @@ module Zip
# This represents an entire archive.
#
class Archive
attr_reader :entries
def initialize(compmeth=CM_DEFLATE)
@compmeth = compmeth
@ -87,5 +88,25 @@ class Archive
end
class Jar < Archive
attr_accessor :manifest
def build_manifest(opts={})
main_class = opts[:main_class] || nil
skip = opts[:skip] || /^$/
@manifest = ''
@manifest = "Main-Class: #{main_class}\n\n" if main_class
@entries.each { |e|
next if e.name =~ skip
@manifest << "Name: #{e.name}\n\n"
}
add_file("META-INF/", '')
add_file("META-INF/MANIFEST.MF", @manifest)
end
end
end
end