diff options
Diffstat (limited to 'reconfigure/items/hosts.py')
-rw-r--r-- | reconfigure/items/hosts.py | 26 |
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') |