Author: kkaempf Date: Thu Jan 3 17:37:28 2008 New Revision: 8189 URL: http://svn.opensuse.org/viewcvs/zypp?rev=8189&view=rev Log: support .gz files everywhere Modified: trunk/repotools/zypptools/input/tagparser.rb trunk/repotools/zypptools/input/yast.rb Modified: trunk/repotools/zypptools/input/tagparser.rb URL: http://svn.opensuse.org/viewcvs/zypp/trunk/repotools/zypptools/input/tagparser.rb?rev=8189&r1=8188&r2=8189&view=diff ============================================================================== --- trunk/repotools/zypptools/input/tagparser.rb (original) +++ trunk/repotools/zypptools/input/tagparser.rb Thu Jan 3 17:37:28 2008 @@ -2,6 +2,7 @@ # TagParser for 'tagfile' style files (packages, packages.*, *.pat) # + class TagParser attr_reader :filename, :lnum @@ -13,9 +14,17 @@ def initialize( filename ) @filename = filename + + begin # rescue block File.open( filename ) do |f| - @f = f + if ( Pathname.new( filename ).extname == ".gz" ) + require 'zlib' + @f = Zlib::GzipReader.new( f ) + puts "Gzipreader #{@f}" + else + @f = f + end parse_internal self.send( :finish ) end @@ -46,7 +55,9 @@ l = "" loop do return nil if @f.eof? - l = @f.gets.chomp + l = @f.gets # extra check for GzipReader not reporting eof? properly + return nil unless l + l.chomp! @lnum = @lnum + 1 #puts "get_line(#{@lnum}:#{l})" next if l.size == 0 Modified: trunk/repotools/zypptools/input/yast.rb URL: http://svn.opensuse.org/viewcvs/zypp/trunk/repotools/zypptools/input/yast.rb?rev=8189&r1=8188&r2=8189&view=diff ============================================================================== --- trunk/repotools/zypptools/input/yast.rb (original) +++ trunk/repotools/zypptools/input/yast.rb Thu Jan 3 17:37:28 2008 @@ -365,22 +365,6 @@ end dir += "/" + @products[0].descrdir - if File.exist?(dir + "/packages") - @pkgs = Packages.new( dir + "/packages", arch ) - elsif File.exist?(dir + "/packages.gz") - data = File.new("tmp_yast", modestring="w+") - File.open(dir + "/packages.gz") do |f| - gzip = Zlib::GzipReader.new(f) - data << gzip.read - gzip.close - end - data.close - @pkgs = Packages.new( "tmp_yast", arch ) - File.delete("tmp_yast") - else - raise "Packages-File not found" - end - @packages = @pkgs.store @patterns = Hash.new pname = dir + "/patterns" return unless File.exist?( pname ) @@ -389,6 +373,16 @@ #@patterns = pat.store @patterns.merge! pat.store } + + if File.exist?(dir + "/packages") + @pkgs = Packages.new( dir + "/packages", arch ) + elsif File.exist?(dir + "/packages.gz") + @pkgs = Packages.new( dir + "/packages.gz", arch ) + else + raise "Packages-File not found" + end + @packages = @pkgs.store + @selections = Hash.new sname = dir + "/selections" return unless File.exist?( sname ) -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org