1# SPDX-License-Identifier: GPL-2.0+ 2# Copyright (c) 2012 The Chromium OS Authors. 3# 4 5import os 6 7from patman import command 8 9def FindGetMaintainer(try_list): 10 """Look for the get_maintainer.pl script. 11 12 Args: 13 try_list: List of directories to try for the get_maintainer.pl script 14 15 Returns: 16 If the script is found we'll return a path to it; else None. 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(dir_list, 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 dir_list: List of directories to try for the get_maintainer.pl script 35 fname: Path to the patch file to run get_maintainer.pl on. 36 37 Returns: 38 A list of email addresses to CC to. 39 """ 40 get_maintainer = FindGetMaintainer(dir_list) 41 if not get_maintainer: 42 if verbose: 43 print("WARNING: Couldn't find get_maintainer.pl") 44 return [] 45 46 stdout = command.Output(get_maintainer, '--norolestats', fname) 47 lines = stdout.splitlines() 48 return [ x.replace('"', '') for x in lines ] 49