[SeaBIOS] [PATCH] buildversion: Add debugging messages

Kevin O'Connor kevin at koconnor.net
Tue Nov 10 16:01:11 CET 2015


Add ability to output debug messages from the buildversion.py build
script.

Signed-off-by: Kevin O'Connor <kevin at koconnor.net>
---
 scripts/buildversion.py | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/scripts/buildversion.py b/scripts/buildversion.py
index 1045049..ad47b90 100755
--- a/scripts/buildversion.py
+++ b/scripts/buildversion.py
@@ -4,7 +4,7 @@
 # Copyright (C) 2015  Kevin O'Connor <kevin at koconnor.net>
 #
 # This file may be distributed under the terms of the GNU GPLv3 license.
-import sys, os, subprocess, shlex, time, socket, optparse
+import sys, os, subprocess, shlex, time, socket, optparse, logging, traceback
 
 VERSION_FORMAT = """
 /* DO NOT EDIT!  This is an autogenerated file.  See scripts/buildversion.py. */
@@ -14,40 +14,51 @@ VERSION_FORMAT = """
 
 # Run program and return the specified output
 def check_output(prog):
+    logging.debug("Running %s" % (repr(prog),))
     try:
         process = subprocess.Popen(shlex.split(prog), stdout=subprocess.PIPE)
         output = process.communicate()[0]
         retcode = process.poll()
     except OSError:
+        logging.debug("Exception on run: %s" % (traceback.format_exc(),))
         return ""
+    logging.debug("Got (code=%s): %s" % (retcode, repr(output)))
     if retcode:
         return ""
     try:
         return output.decode()
     except UnicodeError:
+        logging.debug("Exception on decode: %s" % (traceback.format_exc(),))
         return ""
 
 # Obtain version info from "git" program
 def git_version():
     if not os.path.exists('.git'):
+        logging.debug("No '.git' file/directory found")
         return ""
-    return check_output("git describe --tags --long --dirty").strip()
+    ver = check_output("git describe --tags --long --dirty").strip()
+    logging.debug("Got git version: %s" % (repr(ver),))
+    return ver
 
 # Look for version in a ".version" file.  Official release tarballs
 # have this file (see scripts/tarball.sh).
 def file_version():
     if not os.path.isfile('.version'):
+        logging.debug("No '.version' file found")
         return ""
     try:
         f = open('.version', 'r')
         ver = f.readline().strip()
         f.close()
     except OSError:
+        logging.debug("Exception on read: %s" % (traceback.format_exc(),))
         return ""
+    logging.debug("Got .version: %s" % (repr(ver),))
     return ver
 
 # Generate an output file with the version information
 def write_version(outfile, version, toolstr):
+    logging.debug("Write file %s and %s" % (repr(version), repr(toolstr)))
     sys.stdout.write("Version: %s\n" % (version,))
     f = open(outfile, 'w')
     f.write(VERSION_FORMAT % (version, toolstr))
@@ -74,6 +85,8 @@ def tool_versions(tools):
             continue
         # Check for any version conflicts
         if versions[isbinutils] and versions[isbinutils] != ver:
+            logging.debug("Mixed version %s vs %s" % (
+                repr(versions[isbinutils]), repr(ver)))
             vers[isbinutils] = "mixed"
             continue
         versions[isbinutils] = ver
@@ -88,11 +101,15 @@ def main():
                     help="extra version string to append to version")
     opts.add_option("-t", "--tools", dest="tools", default="",
                     help="list of build programs to extract version from")
+    opts.add_option("-v", action="store_true", dest="verbose",
+                    help="enable debug messages")
 
     options, args = opts.parse_args()
     if len(args) != 1:
         opts.error("Incorrect arguments")
     outfile = args[0]
+    if options.verbose:
+        logging.basicConfig(level=logging.DEBUG)
 
     cleanbuild, toolstr = tool_versions(options.tools)
 
-- 
2.4.3




More information about the SeaBIOS mailing list