forked from openkylin/platform_build
Use multiple globs/emails in per-file syntax
Bug: 112259427 Test: tools/checkowners.py -c -v OWNERS */OWNERS */*/OWNERS Change-Id: I0e2c2c64a23df360fbe7691c4336ca04099fba13
This commit is contained in:
parent
c9f31dff01
commit
f77c7f75e5
7
OWNERS
7
OWNERS
|
@ -2,10 +2,7 @@ ccross@android.com
|
||||||
dwillemsen@google.com
|
dwillemsen@google.com
|
||||||
nanzhang@google.com
|
nanzhang@google.com
|
||||||
|
|
||||||
per-file * = ccross@android.com
|
per-file * = ccross@android.com,dwillemsen@google.com,nanzhang@google.com
|
||||||
per-file * = dwillemsen@google.com
|
|
||||||
per-file * = nanzhang@google.com
|
|
||||||
|
|
||||||
# for version updates
|
# for version updates
|
||||||
per-file version_defaults.mk = aseaton@google.com
|
per-file version_defaults.mk = aseaton@google.com,elisapascual@google.com
|
||||||
per-file version_defaults.mk = elisapascual@google.com
|
|
||||||
|
|
|
@ -1,8 +1 @@
|
||||||
per-file * = ccross@android.com
|
per-file dex_preopt*.mk = ngeoffray@google.com,calin@google.com,mathewi@google.com,dbrazdil@google.com
|
||||||
per-file * = dwillemsen@google.com
|
|
||||||
per-file * = nanzhang@google.com
|
|
||||||
|
|
||||||
per-file dex_preopt*.mk = ngeoffray@google.com
|
|
||||||
per-file dex_preopt*.mk = calin@google.com
|
|
||||||
per-file dex_preopt*.mk = mathewi@google.com
|
|
||||||
per-file dex_preopt*.mk = dbrazdil@google.com
|
|
||||||
|
|
|
@ -1,2 +1 @@
|
||||||
per-file warn.py = chh@google.com
|
per-file warn.py,checkowners.py = chh@google.com
|
||||||
per-file checkowners.py = chh@google.com
|
|
||||||
|
|
|
@ -35,22 +35,31 @@ def find_address(address):
|
||||||
echo('Checking email address: ' + address)
|
echo('Checking email address: ' + address)
|
||||||
result = urllib2.urlopen(request).read()
|
result = urllib2.urlopen(request).read()
|
||||||
checked_addresses[address] = result.find('"_account_id":') >= 0
|
checked_addresses[address] = result.find('"_account_id":') >= 0
|
||||||
|
if checked_addresses[address]:
|
||||||
|
echo('Found email address: ' + address)
|
||||||
return checked_addresses[address]
|
return checked_addresses[address]
|
||||||
|
|
||||||
|
|
||||||
|
def check_address(fname, num, address):
|
||||||
|
if find_address(address):
|
||||||
|
return 0
|
||||||
|
print '%s:%d: ERROR: unknown email address: %s' % (fname, num, address)
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# One regular expression to check all valid lines.
|
# One regular expression to check all valid lines.
|
||||||
noparent = 'set +noparent'
|
noparent = 'set +noparent'
|
||||||
email = '([^@ ]+@[^ @]+|\\*)'
|
email = '([^@ ]+@[^ @]+|\\*)'
|
||||||
directive = '(%s|%s)' % (email, noparent)
|
emails = '(%s( *, *%s)*)' % (email, email)
|
||||||
|
directive = '(%s|%s)' % (emails, noparent)
|
||||||
glob = '[a-zA-Z0-9_\\.\\-\\*\\?]+'
|
glob = '[a-zA-Z0-9_\\.\\-\\*\\?]+'
|
||||||
perfile = 'per-file +' + glob + ' *= *' + directive
|
globs = '(%s( *, *%s)*)' % (glob, glob)
|
||||||
|
perfile = 'per-file +' + globs + ' *= *' + directive
|
||||||
pats = '(|%s|%s|%s)$' % (noparent, email, perfile)
|
pats = '(|%s|%s|%s)$' % (noparent, email, perfile)
|
||||||
patterns = re.compile(pats)
|
patterns = re.compile(pats)
|
||||||
|
address_pattern = re.compile('([^@ ]+@[^ @]+)')
|
||||||
# One pattern to capture email address.
|
perfile_pattern = re.compile('per-file +.*=(.*)')
|
||||||
email_address = '.*(@| |=|^)([^@ =]+@[^ @]+)'
|
|
||||||
address_pattern = re.compile(email_address)
|
|
||||||
|
|
||||||
error = 0
|
error = 0
|
||||||
for fname in args.owners:
|
for fname in args.owners:
|
||||||
|
@ -60,17 +69,16 @@ def main():
|
||||||
num += 1
|
num += 1
|
||||||
stripped_line = re.sub('#.*$', '', line).strip()
|
stripped_line = re.sub('#.*$', '', line).strip()
|
||||||
if not patterns.match(stripped_line):
|
if not patterns.match(stripped_line):
|
||||||
error = 1
|
error += 1
|
||||||
print('%s:%d: ERROR: unknown line [%s]'
|
print '%s:%d: ERROR: unknown line [%s]' % (fname, num, line.strip())
|
||||||
% (fname, num, line.strip()))
|
elif args.check_address:
|
||||||
elif args.check_address and address_pattern.match(stripped_line):
|
if perfile_pattern.match(stripped_line):
|
||||||
address = address_pattern.match(stripped_line).group(2)
|
for addr in perfile_pattern.match(stripped_line).group(1).split(','):
|
||||||
if find_address(address):
|
a = addr.strip()
|
||||||
echo('Found email address: ' + address)
|
if a and a != '*':
|
||||||
else:
|
error += check_address(fname, num, addr.strip())
|
||||||
error = 1
|
elif address_pattern.match(stripped_line):
|
||||||
print('%s:%d: ERROR: unknown email address: %s'
|
error += check_address(fname, num, stripped_line)
|
||||||
% (fname, num, address))
|
|
||||||
sys.exit(error)
|
sys.exit(error)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
Loading…
Reference in New Issue