diff options
Diffstat (limited to 'dartium_tools/utils.py')
| -rwxr-xr-x | dartium_tools/utils.py | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/dartium_tools/utils.py b/dartium_tools/utils.py deleted file mode 100755 index e2a50ed..0000000 --- a/dartium_tools/utils.py +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright 2010 Google Inc. All Rights Reserved. - -# This file contains a set of utilities functions used -# by both SConstruct and other Python-based scripts. - -import commands -import os -import platform -import re -import subprocess - -class ChangedWorkingDirectory(object): - def __init__(self, new_dir): - self._new_dir = new_dir - - def __enter__(self): - self._old_dir = os.getcwd() - os.chdir(self._new_dir) - return self._new_dir - - def __exit__(self, *_): - os.chdir(self._old_dir) - -# Try to guess the host operating system. -def guessOS(): - id = platform.system() - if id == "Linux": - return "linux" - elif id == "Darwin": - return "mac" - elif id == "Windows" or id == "Microsoft": - # On Windows Vista platform.system() can return "Microsoft" with some - # versions of Python, see http://bugs.python.org/issue1082 for details. - return "win" - else: - return None - - -# Try to guess the host architecture. -def guessArchitecture(): - id = platform.machine() - if id.startswith('arm'): - return 'arm' - elif (not id) or (not re.match('(x|i[3-6])86', id) is None): - return 'x86' - elif id == 'i86pc': - return 'x86' - else: - return None - - -# Try to guess the number of cpus on this machine. -def guessCpus(): - if os.path.exists("/proc/cpuinfo"): - return int(commands.getoutput("grep -E '^processor' /proc/cpuinfo | wc -l")) - if os.path.exists("/usr/bin/hostinfo"): - return int(commands.getoutput('/usr/bin/hostinfo | grep "processors are logically available." | awk "{ print \$1 }"')) - win_cpu_count = os.getenv("NUMBER_OF_PROCESSORS") - if win_cpu_count: - return int(win_cpu_count) - return int(os.getenv("PARFAIT_NUMBER_OF_CORES", 2)) - - -# Returns true if we're running under Windows. -def isWindows(): - return guessOS() == 'win32' - -# Reads a text file into an array of strings - one for each -# line. Strips comments in the process. -def readLinesFrom(name): - result = [] - for line in open(name): - if '#' in line: - line = line[:line.find('#')] - line = line.strip() - if len(line) == 0: - continue - result.append(line) - return result - -def listArgCallback(option, opt_str, value, parser): - if value is None: - value = [] - - for arg in parser.rargs: - if arg[:2].startswith('--'): - break - value.append(arg) - - del parser.rargs[:len(value)] - setattr(parser.values, option.dest, value) - - -def getCommandOutput(cmd): - print cmd - pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - output = pipe.communicate() - if pipe.returncode == 0: - return output[0] - else: - print output[1] - raise Exception('Failed to run command. return code=%s' % pipe.returncode) - -def runCommand(cmd, env_update=None): - if env_update is None: - env_update = {} - print 'Running: ' + ' '.join(["%s='%s'" % (k, v) for k, v in env_update.iteritems()]) + ' ' + ' '.join(cmd) - env_copy = dict(os.environ.items()) - env_copy.update(env_update) - p = subprocess.Popen(cmd, env=env_copy) - if p.wait() != 0: - raise Exception('Failed to run command. return code=%s' % p.returncode) - -def main(argv): - print "GuessOS() -> ", guessOS() - print "GuessArchitecture() -> ", guessArchitecture() - print "GuessCpus() -> ", guessCpus() - print "IsWindows() -> ", isWindows() - - -if __name__ == "__main__": - import sys - main(sys.argv) |
