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