diff --git a/bcfg2/create-versions-index.py b/bcfg2/create-versions-index.py index 8ba42aa4..3b3360ef 100755 --- a/bcfg2/create-versions-index.py +++ b/bcfg2/create-versions-index.py @@ -4,7 +4,7 @@ # create-versions-index.py # ------------------------ # -# Copyright (C) 2008 Jeremie Dimino +# Copyright (C) 2008 Jeremie Dimino # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,27 +25,32 @@ plugin Rules de bcfg2.''' __all__ = [] -import apt, commands -from xml.dom.minidom import Document +import apt_pkg, sys, os, time -if __name__ == "__main__": - import sys, os, time +apt_pkg.init() +ver = {} +for line in sys.stdin: + [name, new_ver] = line.split() + old_ver = ver.get(name, None) + if not old_ver or apt_pkg.VersionCompare(new_ver, old_ver) == 1: + ver[name] = new_ver - print >>sys.stderr, "Chargement du cache..." - cache = apt.Cache() - print >>sys.stderr, "Génération du document XML..." - print ("" % - (time.ctime(), os.path.basename(sys.argv[0]))) +list = ver.items() +list.sort() - print '' - if "sid" in file("/etc/debian_version").read(): - print '' - else: - print '' - print '' % commands.getoutput("uname -m") - for pkg in cache: - if pkg.candidateVersion: - print ('' % - (pkg.name, pkg.candidateVersion)) - print '' +print ("" % + (time.ctime(), os.path.basename(sys.argv[0]))) + + +print '' +if sys.argv[2] == "testing": + print '' +else: + print '' +print '' % sys.argv[1] + +for (name,ver) in list: + print '' % (name, ver) + +print '' diff --git a/bcfg2/create-versions-index.sh b/bcfg2/create-versions-index.sh new file mode 100755 index 00000000..4081af97 --- /dev/null +++ b/bcfg2/create-versions-index.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Outil pour générer la liste des paquets pour bcfg2 + +generate () { + # $1 = distribution (etch, lenny, ...) + distrib=$1 + arch=$2 + arch2=$3 + cat $(locate -r "/$distrib/.*/binary-$arch/Packages$") /mirror/custom/Packages | \ + awk '$1 == "Package:" {printf "%s ", $2} $1 == "Version:" {print $2}' | \ + /usr/scripts/bcfg2/create-versions-index.py $arch2 $distrib > /usr/scripts/var/bcfg2/packages-generated-$distrib-$arch2.xml +} + +generate etch i386 i686 +generate etch amd64 x86_64