parse config dirs and files transparently
authorKonstantin Stepanov <kstep@p-nut.info>
Tue, 21 Dec 2010 18:57:07 +0000 (20:57 +0200)
committerKonstantin Stepanov <kstep@p-nut.info>
Tue, 21 Dec 2010 18:57:07 +0000 (20:57 +0200)
dbuscron/parser.py

index f31d3ee..92b2708 100644 (file)
@@ -44,7 +44,19 @@ class CrontabParserError(SyntaxError):
 
         SyntaxError.__init__(self, msg)
 
-class CrontabParser(object):
+def CrontabParser(filename):
+    if os.path.isfile(filename):
+        parser_class = FileParser
+
+    elif os.path.isdir(filename):
+        parser_class = DirectoryParser
+
+    else:
+        raise SystemError("I can parse only directories or simple files.")
+
+    return parser_class(filename)
+
+class FileParser(object):
     __fields_sep = re.compile(r'\s+')
     __envvar_sep = re.compile(r'\s*=\s*')
     __fields_chk = {