OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2015 The Chromium Authors. All rights reserved. | 2 # Copyright 2015 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Implements a standard mechanism for Chrome Infra Python environment setup. | 6 """Implements a standard mechanism for Chrome Infra Python environment setup. |
7 | 7 |
8 This library provides a central location to define Chrome Infra environment | 8 This library provides a central location to define Chrome Infra environment |
9 setup. It also provides several faculties to install this environment. | 9 setup. It also provides several faculties to install this environment. |
10 | 10 |
(...skipping 28 matching lines...) Expand all Loading... | |
39 import traceback | 39 import traceback |
40 | 40 |
41 | 41 |
42 # Export for bootstrapping. | 42 # Export for bootstrapping. |
43 __all__ = [ | 43 __all__ = [ |
44 'Install', | 44 'Install', |
45 'PythonPath', | 45 'PythonPath', |
46 ] | 46 ] |
47 | 47 |
48 | 48 |
49 # This is the path of the current "env" module. When "env" is run from | |
50 # command-line, this path is automatically appended, and should be stripped out | |
51 # of system path generation. | |
52 _env_module_path = os.path.abspath(os.path.dirname(__file__)) | |
53 | |
49 # Name of enviornment extension file to seek. | 54 # Name of enviornment extension file to seek. |
50 ENV_EXTENSION_NAME = 'environment.cfg.py' | 55 ENV_EXTENSION_NAME = 'environment.cfg.py' |
51 | 56 |
52 # Standard directories (based on this file's location in the <build> tree). | 57 # Standard directories (based on this file's location in the <build> tree). |
53 def path_if(*args): | 58 def path_if(*args): |
54 if not all(args): | 59 if not all(args): |
55 return None | 60 return None |
56 path = os.path.abspath(os.path.join(*args)) | 61 path = os.path.abspath(os.path.join(*args)) |
57 return (path) if os.path.exists(path) else (None) | 62 return (path) if os.path.exists(path) else (None) |
58 | 63 |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
303 sys.path = orig_sys_path | 308 sys.path = orig_sys_path |
304 SetPythonPathEnv(orig_pythonpath) | 309 SetPythonPathEnv(orig_pythonpath) |
305 | 310 |
306 | 311 |
307 def GetSysPythonPath(hermetic=True): | 312 def GetSysPythonPath(hermetic=True): |
308 """Returns (PythonPath): A path based on 'sys.path'. | 313 """Returns (PythonPath): A path based on 'sys.path'. |
309 | 314 |
310 Args: | 315 Args: |
311 hermetic (bool): If True, prune any non-system path. | 316 hermetic (bool): If True, prune any non-system path. |
312 """ | 317 """ |
313 path = PythonPath.FromPaths(*sys.path) | 318 sys_paths = [p for p in sys.path |
ghost stip (do not use)
2015/10/21 16:17:23
I wonder if this will break things. keep an eye wh
| |
319 if p != _env_module_path] | |
320 path = PythonPath.FromPaths(*sys_paths) | |
314 if hermetic: | 321 if hermetic: |
315 path = path.GetHermetic() | 322 path = path.GetHermetic() |
316 return path | 323 return path |
317 | 324 |
318 | 325 |
319 def GetEnvPythonPath(): | 326 def GetEnvPythonPath(): |
320 """Returns (PythonPath): A path based on the PYTHONPATH environment variable. | 327 """Returns (PythonPath): A path based on the PYTHONPATH environment variable. |
321 """ | 328 """ |
322 pythonpath = os.environ.get('PYTHONPATH') | 329 pythonpath = os.environ.get('PYTHONPATH') |
323 if not pythonpath: | 330 if not pythonpath: |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
430 # Parse | 437 # Parse |
431 args = parser.parse_args() | 438 args = parser.parse_args() |
432 | 439 |
433 # Execute our subcommand function, which will return the exit code. | 440 # Execute our subcommand function, which will return the exit code. |
434 path = _InfraPathFromArgs(args) | 441 path = _InfraPathFromArgs(args) |
435 return args.func(args, path) | 442 return args.func(args, path) |
436 | 443 |
437 | 444 |
438 if __name__ == '__main__': | 445 if __name__ == '__main__': |
439 sys.exit(main()) | 446 sys.exit(main()) |
OLD | NEW |