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