Author: goneri Date: 2009-02-19 23:19:16 +0000 (Thu, 19 Feb 2009) New Revision: 8890
Added: scripts/trunk/viewPatches Log: tool to show the patches of the others OS Added: scripts/trunk/viewPatches =================================================================== --- scripts/trunk/viewPatches (rev 0) +++ scripts/trunk/viewPatches 2009-02-19 23:19:16 UTC (rev 8890) @@ -0,0 +1,135 @@ +#!/usr/bin/python + +import urllib2 +from urllib2 import Request, URLError +import re +from threading import Thread + +class File: + def __init__(self, name, url): + self.name = name + self.url = url + + +class Origin(Thread): + def __init__(self): + Thread.__init__(self) + self.files = [] + self.found = False + + def run(self): + baseUrl = self.baseUrl % self.package + try: + lines = urllib2.urlopen(baseUrl).read() + except URLError, e: + self.found=False + return + + for filename in re.findall(self.findAllRegex, lines): + url = self.downloadBaseUrl % (self.package, filename) + file=File(filename,url) + self.files.append(file) + self.found=True + +class Fedora(Origin): + def __init__(self, package): + Origin.__init__(self) + self.package = package + self.name = 'Fedora Project' + self.baseUrl = 'http://cvs.fedoraproject.org/viewvc/rpms/%s/devel/' + self.findAllRegex = 'devel/(..*?)\?view' + self.downloadBaseUrl = 'http://cvs.fedoraproject.org/viewvc/rpms/%s/devel/%s?view=co' + +class OpenBSD(Origin): + def __init__(self, package): + Origin.__init__(self) + self.package = package + self.name = 'OpenBSD' + self.baseUrl = 'http://www.openbsd.org/cgi-bin/cvsweb/ports/games/%s/patches/' + self.findAllRegex = '<a href="(.*?)\?rev=' + self.downloadBaseUrl = 'http://www.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/games/%s/patches/%s' + +class ArchLinux(Origin): + def __init__(self, package): + Origin.__init__(self) + self.package = package + self.name = 'ArchLinux' + self.baseUrl = 'http://repos.archlinux.org/viewvc.cgi/%s/trunk/' + self.findAllRegex = 'trunk/(.*?)\?view=log' + self.downloadBaseUrl = 'http://repos.archlinux.org/viewvc.cgi/%s/trunk/%s?view=co' + + +class FreeBSD(Origin): + def __init__(self, package): + Origin.__init__(self) + self.package = package + self.name = 'FreeBSD' + self.baseUrl = 'http://www.freebsd.org/cgi/cvsweb.cgi/ports/games/%s/files/' + self.findAllRegex = '<a href="(.*?)\?rev=' + self.downloadBaseUrl = 'http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/games/%s/files/%s' + +class Debian(Origin): + def __init__(self, package): + Origin.__init__(self) + self.package = package + self.name = 'Debian' + self.baseUrl = 'http://svn.debian.org/viewsvn/pkg-games/packages/trunk/%s/debian/patches/' + self.findAllRegex = '/(.*?)\?rev=\d+&view=auto' + self.downloadBaseUrl = 'http://svn.debian.org/viewsvn/*checkout*/pkg-games/packages/trunk/%s/debian/patches/%s' + +class NetBSD(Origin): + def __init__(self, package): + Origin.__init__(self) + self.package = package + self.name = 'NetBSD' + self.baseUrl = 'http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/games/%s/patches/?only_with_tag=MAIN' + self.findAllRegex = '<a href="(.*?)\?rev=' + self.downloadBaseUrl = 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/pkgsrc/games/%s/patches/%s' + +class Gentoo(Origin): + def __init__(self, package): + Origin.__init__(self) + self.package = package + self.name = 'Gentoo' + self.findRemoteDirs() + self.findAllRegex = 'files/(.*?)\?rev=[\d\.]+&view=log' + + def findRemoteDirs(self): + lines = urllib2.urlopen('http://sources.gentoo.org/viewcvs.py/gentoo-x86/').read() + + for section in re.findall('href="/viewcvs.py/gentoo-x86/(games-.*?)/" title="View', lines): + dir = 'http://sources.gentoo.org/viewcvs.py/gentoo-x86/%s/anagramarama/' % section + try: + urllib2.urlopen(dir).info + except URLError, e: + if hasattr(e, 'code'): + do='nothing' + #print e.code + else: + self.baseUrl = 'http://sources.gentoo.org/viewcvs.py/gentoo-x86/%s/%%s/files/' % section + self.downloadBaseUrl = 'http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/%s/%%s/files/%%s' % section + break + + + +package = 'anjuta' + +origins = [] +origins.append(Fedora(package)) +origins.append(OpenBSD(package)) +origins.append(FreeBSD(package)) +origins.append(Debian(package)) +origins.append(NetBSD(package)) +origins.append(Gentoo(package)) +origins.append(ArchLinux(package)) + +for origin in origins: + origin.start() + +for origin in origins: + origin.join() + + if origin.found: + print "= %s =" % origin.name + for file in origin.files: + print ' - %s ( %s )' % (file.name, file.url) Property changes on: scripts/trunk/viewPatches ___________________________________________________________________ Name: svn:executable + * _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/pkg-games-commits

