1# SPDX-License-Identifier: GPL-2.0+ 2# Copyright (c) 2012 The Chromium OS Authors. 3# 4 5import command 6import gitutil 7import os 8 9def FindGetMaintainer(): 10 """Look for the get_maintainer.pl script. 11 12 Returns: 13 If the script is found we'll return a path to it; else None. 14 """ 15 try_list = [ 16 os.path.join(gitutil.GetTopLevel(), 'scripts'), 17 ] 18 # Look in the list 19 for path in try_list: 20 fname = os.path.join(path, 'get_maintainer.pl') 21 if os.path.isfile(fname): 22 return fname 23 24 return None 25 26def GetMaintainer(fname, verbose=False): 27 """Run get_maintainer.pl on a file if we find it. 28 29 We look for get_maintainer.pl in the 'scripts' directory at the top of 30 git. If we find it we'll run it. If we don't find get_maintainer.pl 31 then we fail silently. 32 33 Args: 34 fname: Path to the patch file to run get_maintainer.pl on. 35 36 Returns: 37 A list of email addresses to CC to. 38 """ 39 get_maintainer = FindGetMaintainer() 40 if not get_maintainer: 41 if verbose: 42 print("WARNING: Couldn't find get_maintainer.pl") 43 return [] 44 45 stdout = command.Output(get_maintainer, '--norolestats', fname) 46 lines = stdout.splitlines() 47 return [ x.replace('"', '') for x in lines ] 48