1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
from reconfigure.nodes import Node, PropertyNode
from reconfigure.items.bound import BoundData
class PasswdData (BoundData):
pass
class UserData (BoundData):
fields = ['name', 'password', 'uid', 'gid', 'comment', 'home', 'shell']
def template(self):
return Node(
'line',
*[
Node('token', children=[
PropertyNode('value', '')
])
for x in UserData.fields
]
)
PasswdData.bind_collection('users', item_class=UserData)
for i in range(0, len(UserData.fields)):
path = lambda i: lambda x: x.children[i]
UserData.bind_property('value', UserData.fields[i], path=path(i))
|