| Index: third_party/mozrunner/mozrunner/utils.py
|
| ===================================================================
|
| --- third_party/mozrunner/mozrunner/utils.py (revision 0)
|
| +++ third_party/mozrunner/mozrunner/utils.py (revision 0)
|
| @@ -0,0 +1,66 @@
|
| +#!/usr/bin/env python
|
| +
|
| +# This Source Code Form is subject to the terms of the Mozilla Public
|
| +# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
| +# You can obtain one at http://mozilla.org/MPL/2.0/.
|
| +
|
| +"""
|
| +utility functions for mozrunner
|
| +"""
|
| +
|
| +__all__ = ['findInPath', 'get_metadata_from_egg']
|
| +
|
| +import mozinfo
|
| +import os
|
| +import sys
|
| +
|
| +
|
| +### python package method metadata by introspection
|
| +try:
|
| + import pkg_resources
|
| + def get_metadata_from_egg(module):
|
| + ret = {}
|
| + try:
|
| + dist = pkg_resources.get_distribution(module)
|
| + except pkg_resources.DistributionNotFound:
|
| + return {}
|
| + if dist.has_metadata("PKG-INFO"):
|
| + key = None
|
| + for line in dist.get_metadata("PKG-INFO").splitlines():
|
| + # see http://www.python.org/dev/peps/pep-0314/
|
| + if key == 'Description':
|
| + # descriptions can be long
|
| + if not line or line[0].isspace():
|
| + value += '\n' + line
|
| + continue
|
| + else:
|
| + key = key.strip()
|
| + value = value.strip()
|
| + ret[key] = value
|
| +
|
| + key, value = line.split(':', 1)
|
| + key = key.strip()
|
| + value = value.strip()
|
| + ret[key] = value
|
| + if dist.has_metadata("requires.txt"):
|
| + ret["Dependencies"] = "\n" + dist.get_metadata("requires.txt")
|
| + return ret
|
| +except ImportError:
|
| + # package resources not avaialable
|
| + def get_metadata_from_egg(module):
|
| + return {}
|
| +
|
| +
|
| +def findInPath(fileName, path=os.environ['PATH']):
|
| + """python equivalent of which; should really be in the stdlib"""
|
| + dirs = path.split(os.pathsep)
|
| + for dir in dirs:
|
| + if os.path.isfile(os.path.join(dir, fileName)):
|
| + return os.path.join(dir, fileName)
|
| + if mozinfo.isWin:
|
| + if os.path.isfile(os.path.join(dir, fileName + ".exe")):
|
| + return os.path.join(dir, fileName + ".exe")
|
| +
|
| +if __name__ == '__main__':
|
| + for i in sys.argv[1:]:
|
| + print findInPath(i)
|
|
|
| Property changes on: third_party/mozrunner/mozrunner/utils.py
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|