diff configmix/variables.py @ 30:d70b58b0dfb9

A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
author Franz Glasner <hg@dom66.de>
date Fri, 18 Mar 2016 09:27:14 +0100
parents 0b1292e920af
children 3ee21f868440
line wrap: on
line diff
--- a/configmix/variables.py	Fri Mar 18 09:13:06 2016 +0100
+++ b/configmix/variables.py	Fri Mar 18 09:27:14 2016 +0100
@@ -28,7 +28,17 @@
             return default
 
 
-_varns_registry = {"ENV": _envlookup}
+def _oslookup(name, default=_MARKER):
+    """Lookup an environment variable"""
+    if name == "cwd":
+        return native_os_str_to_text(os.getcwd())
+    raise KeyError("key %r not found in the namespace" % name)
+
+
+_varns_registry = {
+    "ENV": _envlookup,
+    "OS": _oslookup
+}
 
 
 def lookup_varns(name):
@@ -94,3 +104,13 @@
     """
     import passlib.utils
     return passlib.utils.saslprep(v)
+
+
+@filter("normpath")
+def normpath_impl(config, v):
+    return os.path.normpath(v)
+
+
+@filter("abspath")
+def abspath_impl(config, v):
+    return os.path.abspath(v)