xref: /aosp_15_r20/external/cronet/build/toolchain/get_goma_dir.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2020 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker# This script gets default goma_dir for depot_tools goma.
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Workerimport os
8*6777b538SAndroid Build Coastguard Workerimport sys
9*6777b538SAndroid Build Coastguard Worker
10*6777b538SAndroid Build Coastguard Worker
11*6777b538SAndroid Build Coastguard Workerdef main():
12*6777b538SAndroid Build Coastguard Worker  gomacc = 'gomacc'
13*6777b538SAndroid Build Coastguard Worker  candidates = []
14*6777b538SAndroid Build Coastguard Worker  if sys.platform in ['win32', 'cygwin']:
15*6777b538SAndroid Build Coastguard Worker    gomacc = 'gomacc.exe'
16*6777b538SAndroid Build Coastguard Worker
17*6777b538SAndroid Build Coastguard Worker  for path in os.environ.get('PATH', '').split(os.pathsep):
18*6777b538SAndroid Build Coastguard Worker    # normpath() required to strip trailing slash when present.
19*6777b538SAndroid Build Coastguard Worker    if os.path.basename(os.path.normpath(path)) == 'depot_tools':
20*6777b538SAndroid Build Coastguard Worker      candidates.append(os.path.join(path, '.cipd_bin'))
21*6777b538SAndroid Build Coastguard Worker
22*6777b538SAndroid Build Coastguard Worker  for d in candidates:
23*6777b538SAndroid Build Coastguard Worker    if os.path.isfile(os.path.join(d, gomacc)):
24*6777b538SAndroid Build Coastguard Worker      sys.stdout.write(d)
25*6777b538SAndroid Build Coastguard Worker      return 0
26*6777b538SAndroid Build Coastguard Worker  # mb analyze step set use_goma=true, but goma_dir="",
27*6777b538SAndroid Build Coastguard Worker  # and bot doesn't have goma in default locataion above.
28*6777b538SAndroid Build Coastguard Worker  # to mitigate this, just use initial depot_tools path
29*6777b538SAndroid Build Coastguard Worker  # or default path as before (if depot_tools doesn't exist
30*6777b538SAndroid Build Coastguard Worker  # in PATH).
31*6777b538SAndroid Build Coastguard Worker  # TODO(ukai): crbug.com/1073276: fix mb analyze step and make it hard error?
32*6777b538SAndroid Build Coastguard Worker  if sys.platform in ['win32', 'cygwin']:
33*6777b538SAndroid Build Coastguard Worker    sys.stdout.write('C:\\src\\goma\\goma-win64')
34*6777b538SAndroid Build Coastguard Worker  elif 'GOMA_DIR' in os.environ:
35*6777b538SAndroid Build Coastguard Worker    sys.stdout.write(os.environ.get('GOMA_DIR'))
36*6777b538SAndroid Build Coastguard Worker  else:
37*6777b538SAndroid Build Coastguard Worker    sys.stdout.write(os.path.join(os.environ.get('HOME', ''), 'goma'))
38*6777b538SAndroid Build Coastguard Worker  return 0
39*6777b538SAndroid Build Coastguard Worker
40*6777b538SAndroid Build Coastguard Worker
41*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__':
42*6777b538SAndroid Build Coastguard Worker  sys.exit(main())
43