SyntaxError.__init__(self, msg)
-def CrontabParser(filename):
- if os.path.isfile(filename):
- parser_class = FileParser
+def CrontabParser(*filenames):
+ for filename in filenames:
+ if not os.path.exists(filename):
+ continue
- elif os.path.isdir(filename):
- parser_class = DirectoryParser
+ if os.path.isfile(filename):
+ parser_class = FileParser
- else:
- raise SystemError("I can parse only directories or simple files.")
+ elif os.path.isdir(filename):
+ parser_class = DirectoryParser
+
+ else:
+ raise SystemError("I can parse only directories or simple files.")
+
+ return parser_class(filename)
- return parser_class(filename)
+ raise SystemError("Can't find any config file or directory.")
class FileParser(object):
__fields_sep = re.compile(r'\s+')
bus = DbusBus(options.sessionaddr)
commands = Commands()
- crontab = CrontabParser(options.config)
+
+ config_files = [ options.config ]
+ if not options.config.endswith('.d'):
+ config_files.insert(0, options.config+'.d')
+ crontab = CrontabParser(*config_files)
# 5. load config file
def load_config(parser):