Chromium Code Reviews| Index: prebuilt.py |
| diff --git a/prebuilt.py b/prebuilt.py |
| index 799253c8cf772cd890eac4008d8a49cb6be158c1..a03707b209b319df34d1128a771e286e4a6368f1 100755 |
| --- a/prebuilt.py |
| +++ b/prebuilt.py |
| @@ -54,7 +54,6 @@ _REL_HOST_PATH = 'host/%(target)s/%(version)s/packages' |
| # Private overlays to look at for builds to filter |
| # relative to build path |
| _PRIVATE_OVERLAY_DIR = 'src/private-overlays' |
| -_BINHOST_BASE_DIR = 'src/overlays' |
| _BINHOST_BASE_URL = 'http://commondatastorage.googleapis.com/chromeos-prebuilt' |
| _PREBUILT_BASE_DIR = 'src/third_party/chromiumos-overlay/chromeos/config/' |
| # Created in the event of new host targets becoming available |
| @@ -324,40 +323,54 @@ def GenerateUploadDict(base_local_path, base_remote_path, pkgs): |
| return upload_files |
| +def GetBoardPathFromCrosOverlayList(build_path, target): |
| + """Use the cros_overlay_list to determine the path to the board overlay |
| + Args: |
| + build_path: The path to the root of the build directory |
| + target: The target that we are looking for, could consist of board and |
| + board_variant, we handle that properly |
| + Returns: |
| + The last line from cros_overlay_list as a string |
| + """ |
| + script_dir = os.path.join(build_path, 'src/scripts/bin') |
| + cmd = ['./cros_overlay_list'] |
| + if re.match('.*?_.*', target): |
|
sosa
2011/01/19 21:51:15
is this true? It looks like variants are board (w
scottz
2011/01/19 22:11:06
Not in this script, in cbuild and archive_build we
|
| + (board, variant) = target.split('_') |
|
sosa
2011/01/19 21:51:15
partition might be better here ... (board, _, vari
scottz
2011/01/19 22:11:06
Can you explain a bit more what you mean here?
On
|
| + cmd += ['--board', board, '--variant', variant] |
| + elif re.match('.*?-\w+', target): |
| + cmd += ['--board', target] |
| + else: |
| + raise UnknownBoardFormat('Unknown format: %s' % target) |
| + |
| + cmd_output = cros_build_lib.RunCommand(cmd, redirect_stdout=True, |
| + cwd=script_dir) |
| + # We only care about the last entry |
| + return cmd_output.output.splitlines().pop() |
| -def DeterminePrebuiltConfFile(target): |
| + |
| +def DeterminePrebuiltConfFile(build_path, target): |
| """Determine the prebuilt.conf file that needs to be updated for prebuilts. |
| Args: |
| + build_path: The path to the root of the build directory |
| target: String representation of the board. This includes host and board |
| targets |
| Returns |
| A string path to a prebuilt.conf file to be updated. |
| """ |
| - overlay_base_dir = _BINHOST_BASE_DIR |
| - # If this is a private checkout default to updating |
| - # private overlays over public. |
| - if os.path.exists(_PRIVATE_OVERLAY_DIR): |
| - overlay_base_dir = _PRIVATE_OVERLAY_DIR |
| - |
| if _HOST_TARGET == target: |
| # We are host. |
| # Without more examples of hosts this is a kludge for now. |
| # TODO(Scottz): as new host targets come online expand this to |
| # work more like boards. |
| make_path = _PREBUILT_MAKE_CONF[target] |
| - elif re.match('.*?_.*', target): |
| - # We are a board variant |
| - overlay_str = 'overlay-variant-%s' % target.replace('_', '-') |
| - make_path = os.path.join(overlay_base_dir, overlay_str, 'prebuilt.conf') |
| - elif re.match('.*?-\w+', target): |
| - overlay_str = 'overlay-%s' % target |
| - make_path = os.path.join(overlay_base_dir, overlay_str, 'prebuilt.conf') |
| else: |
| - raise UnknownBoardFormat('Unknown format: %s' % target) |
| + # We are a board |
| + board = GetBoardPathFromCrosOverlayList(build_path, target) |
| + make_path = os.path.join(board, 'prebuilt.conf') |
| - return os.path.join(make_path) |
| + return make_path |
| def UpdateBinhostConfFile(path, key, value): |
| @@ -420,7 +433,7 @@ def UploadPrebuilt(build_path, upload_location, version, binhost_base_url, |
| package_path = os.path.join(board_path, 'packages') |
| package_string = board |
| url_suffix = _REL_BOARD_PATH % {'board': board, 'version': version} |
| - git_file = os.path.join(build_path, DeterminePrebuiltConfFile(board)) |
| + git_file = DeterminePrebuiltConfFile(build_path, board) |
|
sosa
2011/01/19 21:51:15
why?
scottz
2011/01/19 22:11:06
Why did I remove os.path.join? We are now doing th
|
| binhost_conf = os.path.join(build_path, _BINHOST_CONF_DIR, 'target', |
| '%s.conf' % board) |
| remote_location = '%s/%s' % (upload_location.rstrip('/'), url_suffix) |