#!/usr/bin/python # generates a Fedora distro package status file for hackage.haskell.org from fedora.client import PackageDB import koji import sys if len(sys.argv) > 1: release = sys.argv[1] else: release = 'f14' print release + ':' pkgdb = PackageDB() p = pkgdb.user_packages('haskell-sig') # exclude packages not in Hackage packages = [pkg['name'] for pkg in p.pkgs if pkg['name'] not in ['cabal2spec','emacs-haskell-mode','ghc','ghc-gtk2hs','ghc-rpm-macros','haskell-platform','hugs98']] session = koji.ClientSession('http://koji.fedoraproject.org/kojihub') outlist = [] for pkg in packages: latest = session.getLatestBuilds('dist-' + release + '-updates', package=pkg) if latest: ver = latest[0]['version'] name = pkg.replace('ghc-','',1) print "%s-%s" % (name,ver) result = "(\"%s\",\"%s\",Just \"https://admin.fedoraproject.org/community/?package=%s#package_maintenance\")" % (name,ver,pkg) outlist.append(result) f = open(release, 'w') for l in sorted(outlist): f.write(l+'\n')