From 5d57c0a991c7621fdf84b1536ae1a4e51b813a89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fatih=20A=C5=9F=C4=B1c=C4=B1?= Date: Tue, 15 Jun 2010 08:44:58 +0000 Subject: [PATCH] build: Handle the exception raises when archive type is unknown --- pisi/archive.py | 6 +++++- pisi/sourcearchive.py | 9 +++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pisi/archive.py b/pisi/archive.py index 2517cb07..0194407c 100644 --- a/pisi/archive.py +++ b/pisi/archive.py @@ -557,7 +557,11 @@ class Archive: 'bzip2': ArchiveBzip2, 'binary': ArchiveBinary} - self.archive = handlers.get(arch_type)(file_path, arch_type) + handler = handlers.get(arch_type) + if handler is None: + raise UnknownArchiveType + + self.archive = handler(file_path, arch_type) def unpack(self, target_dir, clean_dir=False): self.archive.unpack(target_dir, clean_dir) diff --git a/pisi/sourcearchive.py b/pisi/sourcearchive.py index 7e989277..8c95ad7b 100644 --- a/pisi/sourcearchive.py +++ b/pisi/sourcearchive.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2005 - 2007, TUBITAK/UEKAE +# Copyright (C) 2005-2010, TUBITAK/UEKAE # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free @@ -119,6 +119,11 @@ class SourceArchive: if not util.check_file_hash(self.archiveFile, self.archive.sha1sum): raise Error, _("unpack: check_file_hash failed") - archive = pisi.archive.Archive(self.archiveFile, self.archive.type) + try: + archive = pisi.archive.Archive(self.archiveFile, self.archive.type) + except pisi.archive.UnknownArchiveType: + raise Error(_("Unknown archive type '%s' is given for '%s'.") + % (self.archive.type, self.url.filename())) + target_dir = os.path.join(self.pkg_work_dir, self.archive.target or "") archive.unpack(target_dir, clean_dir)