diff --git a/patoolib/__init__.py b/patoolib/__init__.py index 0a1e9a1..d4486a1 100644 --- a/patoolib/__init__.py +++ b/patoolib/__init__.py @@ -342,7 +342,7 @@ def run_archive_cmdlist (archive_cmdlist): cmdlist, runkwargs = archive_cmdlist else: cmdlist, runkwargs = archive_cmdlist, {} - util.run(cmdlist, **runkwargs) + util.run_checked(cmdlist, **runkwargs) def make_file_readable (filename): @@ -440,10 +440,10 @@ def handle_archive (archive, command, *args, **kwargs): """Handle archive file command; with nice error reporting.""" try: if command == "diff": - _diff_archives(archive, args[0]) + res = _diff_archives(archive, args[0]) else: _handle_archive(archive, command, *args, **kwargs) - res = 0 + res = 0 except KeyboardInterrupt, msg: util.log_info("aborted") res = 1 @@ -465,7 +465,7 @@ def _diff_archives (archive1, archive2): try: dir1 = _handle_archive(archive1, 'extract', outdir=tmpdir1) dir2 = _handle_archive(archive2, 'extract', outdir=tmpdir2) - util.run([diff, "-BurN", dir1, dir2]) + return util.run([diff, "-BurN", dir1, dir2]) finally: shutil.rmtree(tmpdir1, onerror=util.log_error) shutil.rmtree(tmpdir2, onerror=util.log_error) diff --git a/patoolib/util.py b/patoolib/util.py index 1d7e94b..83e3602 100644 --- a/patoolib/util.py +++ b/patoolib/util.py @@ -85,6 +85,11 @@ def backtick (cmd): def run (cmd, **kwargs): + """Run command and raise PatoolError on error.""" + return subprocess.call(cmd, **kwargs) + + +def run_checked (cmd, **kwargs): """Run command and raise PatoolError on error.""" retcode = subprocess.call(cmd, **kwargs) if retcode: @@ -92,7 +97,6 @@ def run (cmd, **kwargs): raise PatoolError(msg) return retcode - @memoized def guess_mime (filename): """Guess the MIME type of given filename using file(1) and if that