summaryrefslogtreecommitdiff
path: root/pagehandler.py
diff options
context:
space:
mode:
Diffstat (limited to 'pagehandler.py')
-rwxr-xr-xpagehandler.py26
1 files changed, 5 insertions, 21 deletions
diff --git a/pagehandler.py b/pagehandler.py
index f73837f..5a36110 100755
--- a/pagehandler.py
+++ b/pagehandler.py
@@ -21,6 +21,7 @@ def error(msg):
class PatchCmd:
def __init__(self, args):
+ self.db = PatchTrackerDB()
self.patchtype,mode,pkgname,version = args[0:4]
self.parsemode(mode)
dh = self.make_diffhandler(pkgname,version)
@@ -47,29 +48,12 @@ class PatchCmd:
else:
error("unhandled display mode '%s'"%(mode))
- # XXX this assumes to much hard coded, but until there's a faster
- # XXX (i.e. database) way to query sourcepackage/diffs it will
- # XXX have to do...
def make_diffhandler(self, pkgname, vers):
- file = None
- if vers.find(":") >= 0:
- diffvers = ":".join(vers.split(":")[1:])
- else:
- diffvers = vers
- dfile = pkgname+"_"+diffvers+".diff.gz"
- for comp in ['main', 'contrib', 'non-free']:
- loc = os.sep.join([Conf.archive_root, 'pool', comp, pkgname[0], pkgname])
- try:
- test = os.sep.join([loc, dfile])
- os.stat(test)
- file = test
- break
- except:
- pass
- if file:
- return DiffGzHandler(file)
+ dfile = self.db.findDiffGz(pkgname,vers)
+ if dfile:
+ return DiffGzHandler(dfile)
else:
- error("can not find diff file for %s / %s"%(pkgname,diffvers))
+ error("can not find diff file for %s / %s"%(pkgname,vers))
def output(self):
if self.mode == "dl":