• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python3
2import os
3import sys
4import yaml
5
6from hierarchy import parse_hierarchy
7
8
9def main():
10  if len(sys.argv) != 2:
11    print('usage: %s target' % sys.argv[0])
12    exit(1)
13
14  args = sys.argv[1].split('-')
15  if len(args) != 2:
16    print('target format: {target}-{variant}')
17    exit(1)
18
19  target, variant = args
20
21  if variant not in ['eng', 'user', 'userdebug']:
22    print('unknown variant "%s": expected "eng", "user" or "userdebug"' %
23          variant)
24    exit(1)
25
26  build_top = os.getenv('BUFFET_BUILD_TOP')
27  if not build_top:
28    print('BUFFET_BUILD_TOP is not set; Did you correctly run envsetup.sh?')
29    exit(1)
30
31  hierarchy_map = parse_hierarchy(build_top)
32
33  if target not in hierarchy_map:
34    raise RuntimeError(
35        "unknown target '%s': couldn't find the target. Supported targets are: %s"
36        % (target, list(hierarchy_map.keys())))
37
38  hierarchy = [target]
39  while hierarchy_map[hierarchy[-1]]:
40    hierarchy.append(hierarchy_map[hierarchy[-1]])
41
42  print('Target hierarchy for %s: %s' % (target, hierarchy))
43
44
45if __name__ == '__main__':
46  main()
47