import os import django.http import django.shortcuts import django.template import DebTarHandler import DiffGzHandler import Conf import models def package_vers(request, package, version): pkg = models.SourcePackage.objects.get( name=package, version=version ) ctx = django.template.RequestContext(request) tmpl = 'package_vers.html' diffhandler = None if pkg.diffgz_name: dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name]) diffhandler = DiffGzHandler.DiffGzHandler(dgz) extra = { 'pkg':pkg, 'ctx':ctx, 'conf':Conf, 'diffhandler':diffhandler } return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx) def download_series_patch(request, package, version, patch): pkg = models.SourcePackage.objects.get( name=package, version=version ) diffhandler = None if pkg.diffgz_name: dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name]) diffhandler = DiffGzHandler.DiffGzHandler(dgz) elif pkg.debtar_name: dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name]) diffhandler = DebTarHandler(dtar) patchContents = diffhandler.series().fetch(patch) return django.http.HttpResponse(patchContents, mimetype="text/plain") def view_series_patch(request, package, version, patch): pkg = models.SourcePackage.objects.get( name=package, version=version ) ctx = django.template.RequestContext(request) tmpl = 'patch_view.html' diffhandler = None if pkg.diffgz_name: dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name]) diffhandler = DiffGzHandler.DiffGzHandler(dgz) elif pkg.debtar_name: dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name]) diffhandler = DebTarHandler(dtar) patchContents = diffhandler.series().fetch(patch) extra = { 'pkg':pkg, 'patch':patch, 'patchContents':patchContents, 'patchType':'series', 'conf':Conf } return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx) def download_debianonly_patch(request, package, version): pkg = models.SourcePackage.objects.get( name=package, version=version ) diffhandler = None if pkg.diffgz_name: dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name]) diffhandler = DiffGzHandler.DiffGzHandler(dgz) elif pkg.debtar_name: dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name]) diffhandler = DebTarHandler(dtar) patchContents = diffhandler.debiandir() return django.http.HttpResponse(patchContents, mimetype="text/plain") def view_debianonly_patch(request, package, version): pkg = models.SourcePackage.objects.get( name=package, version=version ) ctx = django.template.RequestContext(request) tmpl = 'patch_view.html' diffhandler = None if pkg.diffgz_name: dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name]) diffhandler = DiffGzHandler.DiffGzHandler(dgz) elif pkg.debtar_name: dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name]) diffhandler = DebTarHandler(dtar) patchContents = diffhandler.debiandir() extra = { 'pkg':pkg, 'patch':'debian-dir only changes', 'patchContents':patchContents, 'patchType':'series', 'conf':Conf } return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx)