[SCM] morituri/master: * morituri/common/common.py: Add MissingDependencyException. * morituri/program/cdrdao.py: * morituri/rip/main.py: Use it to warn about missing cdrdao.
js at users.alioth.debian.org
js at users.alioth.debian.org
Sun Oct 19 20:09:20 UTC 2014
The following commit has been merged in the master branch:
commit 0c5e13ce0f86d2cb7dffad2753953dd46d332075
Author: Thomas Vander Stichele <thomas (at) apestaart (dot) org>
Date: Fri Jun 18 22:02:53 2010 +0000
* morituri/common/common.py:
Add MissingDependencyException.
* morituri/program/cdrdao.py:
* morituri/rip/main.py:
Use it to warn about missing cdrdao.
diff --git a/ChangeLog b/ChangeLog
index 259ecc8..153d0a7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2010-06-19 Thomas Vander Stichele <thomas at apestaart dot org>
+
+ * morituri/common/common.py:
+ Add MissingDependencyException.
+ * morituri/program/cdrdao.py:
+ * morituri/rip/main.py:
+ Use it to warn about missing cdrdao.
+
2010-06-18 Thomas Vander Stichele <thomas at apestaart dot org>
* morituri/common/task.py:
diff --git a/morituri/common/common.py b/morituri/common/common.py
index 684efc4..a223648 100644
--- a/morituri/common/common.py
+++ b/morituri/common/common.py
@@ -205,3 +205,10 @@ def tagListEquals(tl1, tl2):
d2 = tagListToDict(tl2)
return d1 == d2
+
+class MissingDependencyException(Exception):
+ dependency = None
+
+ def __init__(self, *args):
+ self.args = args
+ self.dependency = args[0]
diff --git a/morituri/program/cdrdao.py b/morituri/program/cdrdao.py
index 67b298a..9a3558b 100644
--- a/morituri/program/cdrdao.py
+++ b/morituri/program/cdrdao.py
@@ -250,10 +250,18 @@ class CDRDAOTask(task.Task):
task.Task.start(self, runner)
bufsize = 1024
- self._popen = asyncsub.Popen(["cdrdao", ] + self.options,
- bufsize=bufsize,
- stdin=subprocess.PIPE, stdout=subprocess.PIPE,
- stderr=subprocess.PIPE, close_fds=True)
+ try:
+ self._popen = asyncsub.Popen(["cdrdao", ] + self.options,
+ bufsize=bufsize,
+ stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE, close_fds=True)
+ except OSError, e:
+ import errno
+ if e.errno == errno.ENOENT:
+ raise common.MissingDependencyException('cdrdao')
+
+ raise
+
self.debug('Started cdrdao with pid %d and options %r',
self._popen.pid, self.options)
diff --git a/morituri/rip/main.py b/morituri/rip/main.py
index 8e4c1a0..413fbe0 100644
--- a/morituri/rip/main.py
+++ b/morituri/rip/main.py
@@ -3,7 +3,7 @@
import sys
-from morituri.common import log, logcommand
+from morituri.common import log, logcommand, common, task
from morituri.rip import cd, offset, drive, image
def main(argv):
@@ -18,6 +18,12 @@ def main(argv):
raise
# deps.handleImportError(e)
# ret = -1
+ except task.TaskException, e:
+ if isinstance(e.exception, common.MissingDependencyException):
+ sys.stderr.write('rip: error: missing dependency "%s"\n' %
+ e.exception.dependency)
+ return 255
+ raise
if ret is None:
return 0
--
morituri packaging
More information about the pkg-multimedia-commits
mailing list