changeset 3424:74517019ed26

Python-2.4 fix.
author Jan Nieuwenhuizen <janneke@gnu.org>
date Fri, 04 May 2007 15:21:05 +0200
parents f2c1b80f4b6a
children 06dd31baf953
files bin/gub
diffstat 1 files changed, 29 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/bin/gub	Thu May 03 22:16:10 2007 -0400
+++ b/bin/gub	Fri May 04 15:21:05 2007 +0200
@@ -387,6 +387,34 @@
 
     build_source_packages (settings, specs, names)
 
+def exceptional_build (settings, files):
+    status = 1
+    try:
+        build (settings, files)
+        status = 0
+    except SystemExit, e:
+        status = e.code
+        pass
+    except KeyboardInterrupt, e:
+        pass
+    except Exception, e:
+        pass
+
+    if status:
+        if settings.options.verbose < settings.os_interface.level['output']:
+            print >>sys.stderr,\
+                (''.join (open (settings.os_interface.log_file_name)
+                          .readlines ()[-50:]))
+            log_file = settings.os_interface.log_file_name
+        settings.os_interface.error (misc.exception_string (e))
+    else:
+        settings.os_interface.info ('done\n')
+        
+    settings.os_interface.error ('build log written to: ' +
+                                 settings.os_interface.log_file_name
+                                 + '\n')
+    return status
+
 def main ():
     cli_parser = get_cli_parser ()
     (options, files) = cli_parser.parse_args ()
@@ -402,25 +430,7 @@
         inspect (settings, files)
         sys.exit (0)
 
-    try:
-        build (settings, files)
-        settings.os_interface.info ('done\n')
-        settings.os_interface.info ('build log written to: ' +
-                                    settings.os_interface.log_file_name
-                                    + '\n')
-    except SystemExit, e:
-        sys.exit (e.code)
-    except BaseException, e:
-        if settings.options.verbose < settings.os_interface.level['output']:
-            print >>sys.stderr,\
-                (''.join (open (settings.os_interface.log_file_name)
-                          .readlines ()[-50:]))
-            log_file = settings.os_interface.log_file_name
-        settings.os_interface.error (misc.exception_string (e))
-        settings.os_interface.error ('build log written to: ' +
-                                    settings.os_interface.log_file_name
-                                    + '\n')
-        sys.exit (1)
+    sys.exit (exceptional_build (settings, files))
 
 if __name__ == '__main__':
     main ()