Commit 5b479547 authored by Hanspeter Spalinger's avatar Hanspeter Spalinger
Browse files

pass arguments as dict

parent 1379262c
...@@ -42,7 +42,7 @@ def main(argv): ...@@ -42,7 +42,7 @@ def main(argv):
log = check.LogCounter() log = check.LogCounter()
print('Checking correctness of %s' % args.crontab) print('Checking correctness of %s' % args.crontab)
return check.check_crontab(args.crontab, log, args.whitelisted_users) return check.check_crontab(args, log)
if __name__ == '__main__': if __name__ == '__main__':
sys.exit(main(sys.argv)) sys.exit(main(sys.argv))
...@@ -1053,14 +1053,14 @@ class LogCounter(object): ...@@ -1053,14 +1053,14 @@ class LogCounter(object):
return self._error_count return self._error_count
def check_crontab(crontab_file, log, whitelisted_users=None): def check_crontab(arguments, log):
"""Check a crontab file. """Check a crontab file.
Checks crontab_file for a variety of errors or potential errors. This only Checks crontab_file for a variety of errors or potential errors. This only
works with the crontab format found in /etc/crontab and /etc/cron.d. works with the crontab format found in /etc/crontab and /etc/cron.d.
Args: Args:
crontab_file: Name of the crontab file to check. arguments: ArgumentPArser Object containing the crontab file and options
log: A LogCounter object. log: A LogCounter object.
whitelisted_users: A list of users to ignore when warning on unrecognized users. whitelisted_users: A list of users to ignore when warning on unrecognized users.
...@@ -1071,18 +1071,18 @@ def check_crontab(crontab_file, log, whitelisted_users=None): ...@@ -1071,18 +1071,18 @@ def check_crontab(crontab_file, log, whitelisted_users=None):
""" """
# Check if the file even exists. # Check if the file even exists.
if not os.path.exists(crontab_file): if not os.path.exists(arguments.crontab):
return log.Summary() return log.Summary()
# Add the any specified users to the whitelist # Add the any specified users to the whitelist
if whitelisted_users: if arguments.whitelisted_users:
USER_WHITELIST.update(whitelisted_users) USER_WHITELIST.update(arguments.whitelisted_users)
# Check the file name. # Check the file name.
if re.search('[^A-Za-z0-9_-]', os.path.basename(crontab_file)): if re.search('[^A-Za-z0-9_-]', os.path.basename(arguments.crontab)):
in_whitelist = False in_whitelist = False
for pattern in FILE_RE_WHITELIST: for pattern in FILE_RE_WHITELIST:
if pattern.search(os.path.basename(crontab_file)): if pattern.search(os.path.basename(arguments.crontab)):
in_whitelist = True in_whitelist = True
break break
if not in_whitelist: if not in_whitelist:
...@@ -1091,7 +1091,7 @@ def check_crontab(crontab_file, log, whitelisted_users=None): ...@@ -1091,7 +1091,7 @@ def check_crontab(crontab_file, log, whitelisted_users=None):
line_no = 0 line_no = 0
cron_line_factory = CronLineFactory() cron_line_factory = CronLineFactory()
with open(crontab_file, 'r') as crontab_f: with open(arguments.crontab, 'r') as crontab_f:
for line in crontab_f: for line in crontab_f:
missing_newline = line[-1] != "\n" missing_newline = line[-1] != "\n"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment