OLD | NEW |
1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Common python commands used by various build scripts.""" | 5 """Common python commands used by various build scripts.""" |
6 | 6 |
7 import inspect | 7 import inspect |
8 import os | 8 import os |
9 import subprocess | 9 import subprocess |
10 import sys | 10 import sys |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 | 129 |
130 | 130 |
131 def Info(message): | 131 def Info(message): |
132 """Emits a blue informational message and continues execution. | 132 """Emits a blue informational message and continues execution. |
133 | 133 |
134 Keyword arguments: | 134 Keyword arguments: |
135 message: The message to be emitted. | 135 message: The message to be emitted. |
136 """ | 136 """ |
137 print >> sys.stderr, ( | 137 print >> sys.stderr, ( |
138 Color(_STDOUT_IS_TTY).Color(Color.BLUE, '\nINFO: ' + message)) | 138 Color(_STDOUT_IS_TTY).Color(Color.BLUE, '\nINFO: ' + message)) |
| 139 |
| 140 |
| 141 def FindRepoDir(): |
| 142 """Returns the nearest higher-level repo dir from the cwd.""" |
| 143 cwd = os.getcwd() |
| 144 while cwd != '/': |
| 145 repo_dir = os.path.join(cwd, '.repo') |
| 146 if os.path.isdir(repo_dir): |
| 147 return repo_dir |
| 148 cwd = os.path.dirname(cwd) |
| 149 return None |
| 150 |
| 151 |
| 152 def ReinterpretPathForChroot(path): |
| 153 """Returns reinterpreted path from outside the chroot for use inside. |
| 154 |
| 155 Keyword arguments: |
| 156 path: The path to reinterpret. Must be in src tree. |
| 157 """ |
| 158 root_path = os.path.join(FindRepoDir(), '..') |
| 159 |
| 160 path_abs_path = os.path.abspath(path) |
| 161 root_abs_path = os.path.abspath(root_path) |
| 162 |
| 163 # Strip the repository root from the path and strip first /. |
| 164 relative_path = path_abs_path.replace(root_abs_path, '')[1:] |
| 165 |
| 166 if relative_path == path_abs_path: |
| 167 raise Exception('Error: path is outside your src tree, cannot reinterpret.') |
| 168 |
| 169 new_path = os.path.join('/home', os.getenv('USER'), 'trunk', relative_path) |
| 170 return new_path |
| 171 |
OLD | NEW |