[OE-core] [wic][PATCH] wic: refactored processing of wic exceptions
Ed Bartosh
ed.bartosh at linux.intel.com
Wed May 27 11:05:20 UTC 2015
All wic exceptions are now inherited from new base exception
class WicError. It makes them easy to maintain and catch.
Processing of exceptions is done this way:
Known wic exceptions cause wic to print error message to stdout.
Unknown exceptions are not catched anymore and produce standard
python traceback.
Signed-off-by: Ed Bartosh <ed.bartosh at linux.intel.com>
---
scripts/lib/wic/utils/errors.py | 34 ++++++++--------------------------
scripts/wic | 11 +++++------
2 files changed, 13 insertions(+), 32 deletions(-)
diff --git a/scripts/lib/wic/utils/errors.py b/scripts/lib/wic/utils/errors.py
index 9410311..d1b514d 100644
--- a/scripts/lib/wic/utils/errors.py
+++ b/scripts/lib/wic/utils/errors.py
@@ -16,32 +16,14 @@
# with this program; if not, write to the Free Software Foundation, Inc., 59
# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-class CreatorError(Exception):
- """An exception base class for all imgcreate errors."""
- keyword = '<creator>'
+class WicError(Exception):
+ pass
- def __init__(self, msg):
- self.msg = msg
+class CreatorError(WicError):
+ pass
- def __str__(self):
- if isinstance(self.msg, unicode):
- self.msg = self.msg.encode('utf-8', 'ignore')
- else:
- self.msg = str(self.msg)
- return self.keyword + self.msg
+class Usage(WicError):
+ pass
-class Usage(CreatorError):
- keyword = '<usage>'
-
- def __str__(self):
- if isinstance(self.msg, unicode):
- self.msg = self.msg.encode('utf-8', 'ignore')
- else:
- self.msg = str(self.msg)
- return self.keyword + self.msg + ', please use "--help" for more info'
-
-class KsError(CreatorError):
- keyword = '<kickstart>'
-
-class ImageError(CreatorError):
- keyword = '<mount>'
+class ImageError(WicError):
+ pass
diff --git a/scripts/wic b/scripts/wic
index 90b36c6..cf96859 100755
--- a/scripts/wic
+++ b/scripts/wic
@@ -53,6 +53,7 @@ else:
bitbake_main = None
from wic.utils.oe.misc import find_bitbake_env_lines, set_bitbake_env_lines
+from wic.utils.errors import WicError
from image import engine
from image import help as hlp
@@ -309,10 +310,8 @@ def main(argv):
if __name__ == "__main__":
try:
- ret = main(sys.argv[1:])
- except Exception:
- ret = 1
- import traceback
- traceback.print_exc()
- sys.exit(ret)
+ sys.exit(main(sys.argv[1:]))
+ except WicError as err:
+ print >> sys.stderr, "ERROR:", err
+ sys.exit(1)
--
2.1.4
More information about the Openembedded-core
mailing list