| # SPDX-License-Identifier: GPL-2.0+ |
| # Copyright (c) 2012 The Chromium OS Authors. |
| # |
| |
| import os |
| |
| from patman import command |
| |
| def FindGetMaintainer(try_list): |
| """Look for the get_maintainer.pl script. |
| |
| Args: |
| try_list: List of directories to try for the get_maintainer.pl script |
| |
| Returns: |
| If the script is found we'll return a path to it; else None. |
| """ |
| # Look in the list |
| for path in try_list: |
| fname = os.path.join(path, 'get_maintainer.pl') |
| if os.path.isfile(fname): |
| return fname |
| |
| return None |
| |
| def GetMaintainer(dir_list, fname, verbose=False): |
| """Run get_maintainer.pl on a file if we find it. |
| |
| We look for get_maintainer.pl in the 'scripts' directory at the top of |
| git. If we find it we'll run it. If we don't find get_maintainer.pl |
| then we fail silently. |
| |
| Args: |
| dir_list: List of directories to try for the get_maintainer.pl script |
| fname: Path to the patch file to run get_maintainer.pl on. |
| |
| Returns: |
| A list of email addresses to CC to. |
| """ |
| get_maintainer = FindGetMaintainer(dir_list) |
| if not get_maintainer: |
| if verbose: |
| print("WARNING: Couldn't find get_maintainer.pl") |
| return [] |
| |
| stdout = command.Output(get_maintainer, '--norolestats', fname) |
| lines = stdout.splitlines() |
| return [ x.replace('"', '') for x in lines ] |