config: optional config dir support
authorTimo Savola <tsavola@movial.fi>
Thu, 19 Jun 2008 08:26:39 +0000 (11:26 +0300)
committerTimo Savola <tsavola@movial.fi>
Thu, 19 Jun 2008 08:26:39 +0000 (11:26 +0300)
doc/config.txt
matrix/config.py

index c83d340..65ccb22 100644 (file)
@@ -61,6 +61,10 @@ ConfigDir(path, url, branch) ::
        exist, try to clone `url` using Git and check out `branch` (defaults to
        "master").  If `path` is omitted, it will be deducted from `url`.
 
+ConfigDir(path, url, branch, optional=True) ::
+       Same as above, but does nothing unless `path` is specified on the
+       command line.
+
 Parse(name) ::
        Evaluate the matching config file(s) immediately.  (See the "Finding
        files" section.)
index b9cc8bb..d825ff6 100644 (file)
@@ -21,7 +21,7 @@ def _make_list(arg):
 
        return list(arg)
 
-def config_dir(path=None, url=None, branch='master'):
+def config_dir(path=None, url=None, branch='master', optional=False):
        from repositories import Repository
 
        if not path:
@@ -32,6 +32,11 @@ def config_dir(path=None, url=None, branch='master'):
                if path.endswith('.git'):
                        path = path.rsplit('.', 1)[0]
 
+       if optional and path not in config.initial_config_dirs:
+               if config.debug:
+                       print 'Skipping', path
+               return
+
        if url:
                name = basename(path)
                repo = Repository(name=name, path=path, url=url, branch=branch)