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 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 | 139 |
140 | 140 |
141 def FindRepoDir(path=None): | 141 def FindRepoDir(path=None): |
142 """Returns the nearest higher-level repo dir from the specified path. | 142 """Returns the nearest higher-level repo dir from the specified path. |
143 | 143 |
144 Args: | 144 Args: |
145 path: The path to use. Defaults to cwd. | 145 path: The path to use. Defaults to cwd. |
146 """ | 146 """ |
147 if path is None: | 147 if path is None: |
148 path = os.getcwd() | 148 path = os.getcwd() |
| 149 path = os.path.abspath(path) |
149 while path != '/': | 150 while path != '/': |
150 repo_dir = os.path.join(path, '.repo') | 151 repo_dir = os.path.join(path, '.repo') |
151 if os.path.isdir(repo_dir): | 152 if os.path.isdir(repo_dir): |
152 return repo_dir | 153 return repo_dir |
153 path = os.path.dirname(path) | 154 path = os.path.dirname(path) |
154 return None | 155 return None |
155 | 156 |
156 | 157 |
157 def ReinterpretPathForChroot(path): | 158 def ReinterpretPathForChroot(path): |
158 """Returns reinterpreted path from outside the chroot for use inside. | 159 """Returns reinterpreted path from outside the chroot for use inside. |
159 | 160 |
160 Keyword arguments: | 161 Keyword arguments: |
161 path: The path to reinterpret. Must be in src tree. | 162 path: The path to reinterpret. Must be in src tree. |
162 """ | 163 """ |
163 root_path = os.path.join(FindRepoDir(path), '..') | 164 root_path = os.path.join(FindRepoDir(path), '..') |
164 | 165 |
165 path_abs_path = os.path.abspath(path) | 166 path_abs_path = os.path.abspath(path) |
166 root_abs_path = os.path.abspath(root_path) | 167 root_abs_path = os.path.abspath(root_path) |
167 | 168 |
168 # Strip the repository root from the path and strip first /. | 169 # Strip the repository root from the path and strip first /. |
169 relative_path = path_abs_path.replace(root_abs_path, '')[1:] | 170 relative_path = path_abs_path.replace(root_abs_path, '')[1:] |
170 | 171 |
171 if relative_path == path_abs_path: | 172 if relative_path == path_abs_path: |
172 raise Exception('Error: path is outside your src tree, cannot reinterpret.') | 173 raise Exception('Error: path is outside your src tree, cannot reinterpret.') |
173 | 174 |
174 new_path = os.path.join('/home', os.getenv('USER'), 'trunk', relative_path) | 175 new_path = os.path.join('/home', os.getenv('USER'), 'trunk', relative_path) |
175 return new_path | 176 return new_path |
176 | 177 |
OLD | NEW |