-#!/usr/bin/env python
+#!/usr/bin/env python3
import argparse
import getdeveloperlib
import sys
-import os
def parse_args():
const=True, help='list files not handled by any developer')
parser.add_argument('-e', dest='email', action='store_const',
const=True, help='only list affected developer email addresses')
+ parser.add_argument('-v', dest='validate', action='store_const',
+ const=True, help='validate syntax of DEVELOPERS file')
+ parser.add_argument('-d', dest='filename', action='store', default=None,
+ help='override the default DEVELOPERS file (for debug)')
return parser.parse_args()
action += 1
if args.check:
action += 1
+ if args.validate:
+ action += 1
if len(args.patches) != 0:
action += 1
if action > 1:
print("No action specified")
return
- # getdeveloperlib expects to be executed from the toplevel buildroot
- # directory, which is one level up from this script
- os.chdir(os.path.join(os.path.dirname(os.path.realpath(__file__)), '..'))
-
- devs = getdeveloperlib.parse_developers()
+ devs = getdeveloperlib.parse_developers(args.filename)
if devs is None:
sys.exit(1)
+ # Validation is done by parse_developers() above and we error out
+ # if the validation didn't work, so if we reach here, it means
+ # validation passed, so we can simply bail out in success.
+ if args.validate:
+ return
+
# Handle the check action
if args.check:
files = getdeveloperlib.check_developers(devs)
# Handle the files action
if args.files is not None:
- args.files = [os.path.abspath(f) for f in args.files]
for dev in devs:
- for devfile in dev.files:
- commonfiles = [f for f in args.files if f.startswith(devfile)]
- if commonfiles:
+ for f in args.files:
+ if dev.hasfile(f):
print(dev.name)
break