summaryrefslogtreecommitdiff
path: root/reconfigure/items/hosts.py
diff options
context:
space:
mode:
Diffstat (limited to 'reconfigure/items/hosts.py')
-rw-r--r--reconfigure/items/hosts.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/reconfigure/items/hosts.py b/reconfigure/items/hosts.py
new file mode 100644
index 0000000..74904dc
--- /dev/null
+++ b/reconfigure/items/hosts.py
@@ -0,0 +1,26 @@
+from reconfigure.nodes import Node, PropertyNode
+from reconfigure.items.bound import BoundData
+
+
+class HostsData (BoundData):
+ pass
+
+
+class HostData (BoundData):
+ def template(self):
+ return Node('line', children=[
+ Node('token', children=[PropertyNode('value', '127.0.0.1')]),
+ Node('token', children=[PropertyNode('value', 'localhost')]),
+ ])
+
+
+class AliasData (BoundData):
+ def template(self):
+ return Node()
+
+
+HostsData.bind_collection('hosts', item_class=HostData)
+HostData.bind_property('value', 'address', path=lambda x: x.children[0])
+HostData.bind_property('value', 'name', path=lambda x: x.children[1])
+HostData.bind_collection('aliases', item_class=AliasData, selector=lambda x: x.parent.indexof(x) > 1)
+AliasData.bind_property('value', 'name')