r8890 - scripts/trunk

Gonéri Le Bouder goneri at alioth.debian.org
Thu Feb 19 23:19:16 UTC 2009


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\.]+&amp;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
   + *




More information about the Pkg-games-commits mailing list