blob: 0ffb55a8219ffbcc886b086ffdff0bcad61fd74a [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001# SPDX-License-Identifier: GPL-2.0+
Doug Andersonc2c84bc2012-12-03 14:43:16 +00002# Copyright (c) 2012 The Chromium OS Authors.
3#
Doug Andersonc2c84bc2012-12-03 14:43:16 +00004
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:
Paul Burtonc3931342016-09-27 16:03:50 +010042 print("WARNING: Couldn't find get_maintainer.pl")
Doug Andersonc2c84bc2012-12-03 14:43:16 +000043 return []
44
45 stdout = command.Output(get_maintainer, '--norolestats', fname)
Stefan BrĂ¼ns5d3a5fa2017-12-31 23:21:17 +010046 lines = stdout.splitlines()
47 return [ x.replace('"', '') for x in lines ]