Source code
Revision control
Copy as Markdown
Other Tools
# Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This script gets default goma_dir for depot_tools goma.
import os
import sys
def main():
gomacc = 'gomacc'
candidates = []
if sys.platform in ['win32', 'cygwin']:
gomacc = 'gomacc.exe'
for path in os.environ.get('PATH', '').split(os.pathsep):
# normpath() required to strip trailing slash when present.
if os.path.basename(os.path.normpath(path)) == 'depot_tools':
candidates.append(os.path.join(path, '.cipd_bin'))
for d in candidates:
if os.path.isfile(os.path.join(d, gomacc)):
sys.stdout.write(d)
return 0
# mb analyze step set use_goma=true, but goma_dir="",
# and bot doesn't have goma in default locataion above.
# to mitigate this, just use initial depot_tools path
# or default path as before (if depot_tools doesn't exist
# in PATH).
# TODO(ukai): crbug.com/1073276: fix mb analyze step and make it hard error?
if sys.platform in ['win32', 'cygwin']:
sys.stdout.write('C:\\src\\goma\\goma-win64')
elif 'GOMA_DIR' in os.environ:
sys.stdout.write(os.environ.get('GOMA_DIR'))
else:
sys.stdout.write(os.path.join(os.environ.get('HOME', ''), 'goma'))
return 0
if __name__ == '__main__':
sys.exit(main())