| #!/usr/bin/env python3 |
| import os |
| import sys |
| import yaml |
| |
| from hierarchy import parse_hierarchy |
| |
| |
| def main(): |
| if len(sys.argv) != 2: |
| print('usage: %s target' % sys.argv[0]) |
| exit(1) |
| |
| args = sys.argv[1].split('-') |
| if len(args) != 2: |
| print('target format: {target}-{variant}') |
| exit(1) |
| |
| target, variant = args |
| |
| if variant not in ['eng', 'user', 'userdebug']: |
| print('unknown variant "%s": expected "eng", "user" or "userdebug"' % |
| variant) |
| exit(1) |
| |
| build_top = os.getenv('BUFFET_BUILD_TOP') |
| if not build_top: |
| print('BUFFET_BUILD_TOP is not set; Did you correctly run envsetup.sh?') |
| exit(1) |
| |
| hierarchy_map = parse_hierarchy(build_top) |
| |
| if target not in hierarchy_map: |
| raise RuntimeError( |
| "unknown target '%s': couldn't find the target. Supported targets are: %s" |
| % (target, list(hierarchy_map.keys()))) |
| |
| hierarchy = [target] |
| while hierarchy_map[hierarchy[-1]]: |
| hierarchy.append(hierarchy_map[hierarchy[-1]]) |
| |
| print('Target hierarchy for %s: %s' % (target, hierarchy)) |
| |
| |
| if __name__ == '__main__': |
| main() |