# HG changeset patch # User Vladimir Marek # Date 1300302232 25200 # Node ID 6a7dd3a5aaf979e8d48b549ed3f512de9a15d156 # Parent 5c6feb0253fa7b2ded107a859995e9457c187d98 7027131 userland-fetch should be more verbose when printing IOError exception diff -r 5c6feb0253fa -r 6a7dd3a5aaf9 tools/userland-fetch --- a/tools/userland-fetch Wed Mar 16 07:42:49 2011 -0700 +++ b/tools/userland-fetch Wed Mar 16 12:03:52 2011 -0700 @@ -34,6 +34,15 @@ from urllib import splittype, urlopen import hashlib +def printIOError(e, txt): + """ Function to decode and print IOError type exception """ + print "I/O Error: " + txt + ": " + try: + (code, message) = e + print str(message) + " (" + str(code) + ")" + except: + print str(e) + def validate(file, hash): algorithm, hashvalue = hash.split(':') try: @@ -52,7 +61,8 @@ def validate_container(filename, hash): try: file = open(filename, 'r') - except IOError: + except IOError as e: + printIOError(e, "Can't open file " + filename) return False return validate(file, hash) @@ -72,7 +82,8 @@ file = gzip.GzipFile(filename, 'r') else: return False - except IOError: + except IOError as e: + printIOError(e, "Can't open archive " + filename) return False return validate(file, hash) @@ -82,7 +93,8 @@ try: src = urlopen(url) - except IOError: + except IOError as e: + printIOError(e, "Can't open url " + url) return None if filename == None: @@ -90,7 +102,8 @@ try: dst = open(filename, 'wb'); - except IOError: + except IOError as e: + printIOError(e, "Can't open file " + filename + " for writing") src.close() return None