diff --git a/chkcrontab b/chkcrontab
index 6952bf226afa9731cdbae46ba2d9e739f7202df9..1e5b3832e4b3644b568c57d90aa6112653e1ce37 100755
--- a/chkcrontab
+++ b/chkcrontab
@@ -29,6 +29,7 @@ __author__ = 'lyda@google.com (Kevin Lyda)'
import sys
import chkcrontab_lib as check
+from optparse import OptionParser
def main(argv):
"""main program."""
@@ -41,11 +42,23 @@ def main(argv):
return check.check_crontab(argv[1], log, get_whitelisted_users(argv))
def get_whitelisted_users(argv):
- if len(argv) > 2:
- for arg in argv:
- if '--whitelist' in arg:
- return arg['--whitelist='.__len__():].split(',')
- return None
+ """Gets the list of whitelisted users, if any.
+
+ Args:
+ argv: The argument string supplied by the caller.
+
+ Returns:
+ The list of whitelisted users.
+ """
+ parser = OptionParser()
+ parser.add_option('-w', '--whitelist', dest='whitelisted_users', action='append',
+ help='A user to ignore when warning of unrecognized users This argument may be passed multiple times.')
+ (options, args) = parser.parse_args(argv)
+
+ if options.whitelisted_users:
+ return options.whitelisted_users
+ else:
+ return None
if __name__ == '__main__':
sys.exit(main(sys.argv))
\ No newline at end of file