require 'rexml/document'
include REXML
out = {}
freedesktop = REXML::Document.new( File.open( 'freedesktop-2.15.92.modules' ) )
gnome = REXML::Document.new( File.open( 'gnome-2.15.92.modules' ) )
gnutls = REXML::Document.new( File.open( 'gnutls-2.15.92.modules' ) )
freedesktop.root.each_element( 'tarball') { |tarball|
out[tarball.attributes['id']] = tarball.attributes['version']
}
gnome.root.each_element( 'tarball') { |tarball|
out[tarball.attributes['id']] = tarball.attributes['version']
}
#gnutls.root.each_element( 'tarball') { |tarball|
# gnutls_out[tarball.attributes[id]] = tarball.attributes[version]
#}
def find_version(t)
File.open(t) do |file|
while line = file.gets.strip!
if line.include? "version"
str = line.split[2]
return str.delete("'")
break
end
end
end
end
def normalize_pkg_name (str)
case str
when "mozilla"
return "firefox"
when "libsigc++2"
return "libsigc++"
when "gnome-control-center"
return "control-center"
when "gconf"
return "GConf"
when "gtk+"
return "gtk"
when "gdm2"
return "gdm"
when "hal-0-5-7"
return "hal"
when "gnomemm/libgnomeuimm"
return "libgnomeuimm"
when "gnomemm/libglademm"
return "libglademm"
when "gnomemm/libgnomecanvasmm"
return "libgnomecanvasmm"
when "gnomemm/gnome-vfsmm"
return "gnome-vfsmm"
when "gnomemm/libgnomemm"
return "libgnomemm"
when "gnomemm/gconfmm"
return "gconfmm"
else
return str
end
end
out.each do |pkg|
nname = ''
target = "/home/am/conary/all-1-devel/"
nname << normalize_pkg_name(pkg[0])
target << nname
if File.exist?(target)
existing = find_version(target << '/' << nname<<'.recipe')
if existing == pkg[1]
p "#{nname}-#{existing} is up-to-date"
else
p "#{nname} should be #{pkg[1]} but is #{existing}"
end
else
p "#{nname}-#{pkg[1]} seems missing"
end
end