xref: /rk3399_rockchip-uboot/tools/patman/get_maintainer.py (revision 79493609c5300be6cc555ab8bd38971360b381f6)
121a19d70SDoug Anderson# Copyright (c) 2012 The Chromium OS Authors.
221a19d70SDoug Anderson#
31a459660SWolfgang Denk# SPDX-License-Identifier:	GPL-2.0+
421a19d70SDoug Anderson#
521a19d70SDoug Anderson
621a19d70SDoug Andersonimport command
721a19d70SDoug Andersonimport gitutil
821a19d70SDoug Andersonimport os
921a19d70SDoug Anderson
1021a19d70SDoug Andersondef FindGetMaintainer():
1121a19d70SDoug Anderson    """Look for the get_maintainer.pl script.
1221a19d70SDoug Anderson
1321a19d70SDoug Anderson    Returns:
1421a19d70SDoug Anderson        If the script is found we'll return a path to it; else None.
1521a19d70SDoug Anderson    """
1621a19d70SDoug Anderson    try_list = [
1721a19d70SDoug Anderson        os.path.join(gitutil.GetTopLevel(), 'scripts'),
1821a19d70SDoug Anderson        ]
1921a19d70SDoug Anderson    # Look in the list
2021a19d70SDoug Anderson    for path in try_list:
2121a19d70SDoug Anderson        fname = os.path.join(path, 'get_maintainer.pl')
2221a19d70SDoug Anderson        if os.path.isfile(fname):
2321a19d70SDoug Anderson            return fname
2421a19d70SDoug Anderson
2521a19d70SDoug Anderson    return None
2621a19d70SDoug Anderson
2721a19d70SDoug Andersondef GetMaintainer(fname, verbose=False):
2821a19d70SDoug Anderson    """Run get_maintainer.pl on a file if we find it.
2921a19d70SDoug Anderson
3021a19d70SDoug Anderson    We look for get_maintainer.pl in the 'scripts' directory at the top of
3121a19d70SDoug Anderson    git.  If we find it we'll run it.  If we don't find get_maintainer.pl
3221a19d70SDoug Anderson    then we fail silently.
3321a19d70SDoug Anderson
3421a19d70SDoug Anderson    Args:
3521a19d70SDoug Anderson        fname: Path to the patch file to run get_maintainer.pl on.
3621a19d70SDoug Anderson
3721a19d70SDoug Anderson    Returns:
3821a19d70SDoug Anderson        A list of email addresses to CC to.
3921a19d70SDoug Anderson    """
4021a19d70SDoug Anderson    get_maintainer = FindGetMaintainer()
4121a19d70SDoug Anderson    if not get_maintainer:
4221a19d70SDoug Anderson        if verbose:
43*a920a17bSPaul Burton            print("WARNING: Couldn't find get_maintainer.pl")
4421a19d70SDoug Anderson        return []
4521a19d70SDoug Anderson
4621a19d70SDoug Anderson    stdout = command.Output(get_maintainer, '--norolestats', fname)
4721a19d70SDoug Anderson    return stdout.splitlines()
48