![](https://seccdn.libravatar.org/avatar/ca8d90c49f67ad61282a8e30ff67a25e.jpg?s=120&d=mm&r=g)
Author: aschnell Date: Mon Aug 6 16:47:13 2007 New Revision: 6494 URL: http://svn.opensuse.org/viewcvs/zypp?rev=6494&view=rev Log: - added tentative yast metadata output Added: trunk/repotools/output/output.rb trunk/repotools/output/yast.rb Added: trunk/repotools/output/output.rb URL: http://svn.opensuse.org/viewcvs/zypp/trunk/repotools/output/output.rb?rev=6494&view=auto ============================================================================== --- trunk/repotools/output/output.rb (added) +++ trunk/repotools/output/output.rb Mon Aug 6 16:47:13 2007 @@ -0,0 +1,17 @@ + +require 'output/yum' +require 'output/yast' + +def OutputFactory(type, path) + + if type == :yum + return YumOutput.new(path) + end + + if type == :yast + return YastOutput.new(path) + end + + exit 1 + +end Added: trunk/repotools/output/yast.rb URL: http://svn.opensuse.org/viewcvs/zypp/trunk/repotools/output/yast.rb?rev=6494&view=auto ============================================================================== --- trunk/repotools/output/yast.rb (added) +++ trunk/repotools/output/yast.rb Mon Aug 6 16:47:13 2007 @@ -0,0 +1,158 @@ + +# Output YaST Metadata +# aschnell@suse.de + +require 'fileutils' + + +class YastOutput + + + def initialize(path) + + @path = path + @resolvables = Array.new() + + FileUtils.makedirs(@path + '/suse/setup/descr') + FileUtils.makedirs(@path + '/media.1') + + end + + + def start() + @resolvables.clear() + end + + def consume(resolvable) + @resolvables.push(resolvable) + end + + def finish() + write(@resolvables) + end + + + def write_packages(resolvables) + + pkgs = resolvables # FIXME: filter packages + + out = File.new(@path + "/suse/setup/descr/packages", 'w') + + out.puts "=Ver: 2.0" + + pkgs.each do |pkg| + + out.puts "##----------------------------------------" + + out.puts "=Pkg: #{pkg.name} #{pkg.version} #{pkg.release} #{pkg.arch}" + + if pkg.sha1sum + out.puts "=Cks: SHA1 #{pkg.sha1sum}" + end + + x = pkg.send(:requires) + if x + out.puts "+Req:" + x.each do |cap| + # FIXME: it this ok? + if cap.op + out.puts "#{cap.name} #{cap.op} #{cap.version}" + else + out.puts "#{cap.name}" + end + end + out.puts "-Req:" + end + + x = pkg.send(:provides) + if x + out.puts "+Prv:" + x.each do |cap| + # FIXME: it this ok? + if cap.op + out.puts "#{cap.name} #{cap.op} #{cap.version}" + else + out.puts "#{cap.name}" + end + end + out.puts "-Prv:" + end + + end + + out.close() + + end + + + def write_packages_en(resolvables) + + pkgs = resolvables # FIXME: filter packages + + out = File.new(@path + "/suse/setup/descr/packages.en", 'w') + + out.puts "=Ver: 2.0" + + pkgs.each do |pkg| + + out.puts "##----------------------------------------" + + out.puts "=Pkg: #{pkg.name} #{pkg.version} 1 #{pkg.arch}" + out.puts "=Sum: #{pkg.summary}" + + out.puts "+Des:" + out.puts "-Des:" + + end + + out.close() + + end + + + def write_media() + out = File.new(@path + "/media.1/media", 'w') + out.close() + end + + + def write_content() + out = File.new(@path + "/content", 'w') + # FIXME + out.puts "PRODUCT SUSE LINUX" + out.puts "VERSION 10.3" + out.puts "DISTPRODUCT openSUSE-10.3" + out.puts "DISTVERSION 10.3" + out.puts "VENDOR SUSE LINUX Products GmbH, Nuernberg, Germany" + out.puts "RELNOTESURL http://www.suse.com/relnotes/i386/SUSE-Linux/10.3/release-notes.rpm" + out.puts "ARCH.i686 i686 i586 i486 i386 noarch" + out.puts "ARCH.i586 i586 i486 i386 noarch" + out.puts "ARCH.i486 i486 i386 noarch" + out.puts "ARCH.i386 i386 noarch" + out.puts "DEFAULTBASE i586" + out.puts "REQUIRES openSUSE-release-10.3" + out.puts "LINGUAS de en" + out.puts "SHORTLABEL SL 10.3" + out.puts "LABEL openSUSE 10.3" + out.puts "LABEL.de openSUSE 10.3" + out.puts "DESCRDIR suse/setup/descr" + out.puts "DATADIR suse" + out.puts "FLAGS update" + out.puts "LANGUAGE en_US" + out.puts "TIMEZONE America/Los_Angeles" + out.puts "META SHA1 212972603f088eaf67875b945bd9d6aab37f3e5d packages" + out.puts "META SHA1 cc9fcbe9f844f90af4d067d3b7190fbb0785e2c2 packages.en" + out.close() + end + + + def write(resolvables) + write_packages(resolvables) + write_packages_en(resolvables) + write_media() + write_content() + end + + +end + -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org