diff options
| -rwxr-xr-x | indra/cmake/run_build_test.py | 19 | 
1 files changed, 13 insertions, 6 deletions
diff --git a/indra/cmake/run_build_test.py b/indra/cmake/run_build_test.py index 210e43b232..ec5d33f902 100755 --- a/indra/cmake/run_build_test.py +++ b/indra/cmake/run_build_test.py @@ -87,7 +87,6 @@ def main(command, arguments=[], libpath=[], vars={}):          # might not exist; instead of KeyError, just use an empty string.          dirs = os.environ.get(var, "").split(os.pathsep)          # Append the sequence in libpath -        log.info("%s += %r" % (var, libpath))          for dir in libpath:              # append system paths at the end              if dir in ('/lib', '/usr/lib'): @@ -105,16 +104,21 @@ def main(command, arguments=[], libpath=[], vars={}):          # Now rebuild the path string. This way we use a minimum of separators          # -- and we avoid adding a pointless separator when libpath is empty.          os.environ[var] = os.pathsep.join(clean_dirs) -        log.info("%s = %r" % (var, os.environ[var])) +        # This output format is intended to make it straightforward to copy +        # the variable settings and the command itself from the build output +        # and paste the whole thing at a command prompt to rerun it manually. +        log.info("%s='%s' \\" % (var, os.environ[var]))      # Now handle arbitrary environment variables. The tricky part is ensuring      # that all the keys and values we try to pass are actually strings.      if vars: -         log.info("Setting: %s" % ("\n".join(["%s=%s" % (key, value) for key, value in vars.iteritems()]))) +        for key, value in vars.items(): +            # As noted a few lines above, facilitate copy-paste rerunning. +            log.info("%s='%s' \\" % (key, value))      os.environ.update(dict([(str(key), str(value)) for key, value in vars.iteritems()]))      # Run the child process.      command_list = [command]      command_list.extend(arguments) -    log.info("Running: %s" % " ".join(command_list)) +    log.info(" ".join((("'%s'" % w) if ' ' in w else w) for w in command_list))      # Make sure we see all relevant output *before* child-process output.      sys.stdout.flush()      try: @@ -305,8 +309,11 @@ def get_windows_table():      return _windows_table -log=logging.getLogger(__name__) -logging.basicConfig() +# Use this instead of logging.basicConfig() because the latter prefixes +# every line of output with INFO:__main__:... +log=logging.getLogger() +log.setLevel(logging.INFO) +log.addHandler(logging.StreamHandler())  if __name__ == "__main__":      import argparse  | 
