verify-bashisms: use argparse, add verbose option

(From OE-Core rev: 5168ecf6545ddde03bb801e4200d8a6563789be3)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2017-11-09 12:12:04 +00:00 committed by Richard Purdie
parent 8a0d9d9bc4
commit a67c4f3f6f

View File

@ -89,7 +89,13 @@ def get_tinfoil():
return tinfoil return tinfoil
if __name__=='__main__': if __name__=='__main__':
import shutil import argparse, shutil
parser = argparse.ArgumentParser(description='Bashim detector for shell fragments in recipes.')
parser.add_argument("recipes", metavar="RECIPE", nargs="*", help="recipes to check (if not specified, all will be checked)")
parser.add_argument("--verbose", default=False, action="store_true")
args = parser.parse_args()
if shutil.which("checkbashisms.pl") is None: if shutil.which("checkbashisms.pl") is None:
print("Cannot find checkbashisms.pl on $PATH, get it from https://anonscm.debian.org/cgit/collab-maint/devscripts.git/plain/scripts/checkbashisms.pl") print("Cannot find checkbashisms.pl on $PATH, get it from https://anonscm.debian.org/cgit/collab-maint/devscripts.git/plain/scripts/checkbashisms.pl")
sys.exit(1) sys.exit(1)
@ -99,6 +105,8 @@ if __name__=='__main__':
# bitbake server is crucial, don't change it. # bitbake server is crucial, don't change it.
def func(item): def func(item):
(filename, key, lineno), script = item (filename, key, lineno), script = item
if args.verbose:
print("Scanning %s:%s" % (filename, key))
return process(filename, key, lineno, script) return process(filename, key, lineno, script)
import multiprocessing import multiprocessing
@ -110,9 +118,8 @@ if __name__=='__main__':
# recipecaches to handle multiconfig environments # recipecaches to handle multiconfig environments
pkg_pn = tinfoil.cooker.recipecaches[""].pkg_pn pkg_pn = tinfoil.cooker.recipecaches[""].pkg_pn
# TODO: use argparse and have --help if args.recipes:
if len(sys.argv) > 1: initial_pns = args.recipes
initial_pns = sys.argv[1:]
else: else:
initial_pns = sorted(pkg_pn) initial_pns = sorted(pkg_pn)