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
|
from reconfigure.nodes import Node, PropertyNode
from reconfigure.items.bound import BoundData
class FSTabData (BoundData):
pass
class FilesystemData (BoundData):
fields = ['device', 'mountpoint', 'type', 'options', 'freq', 'passno']
def template(self):
return Node('line', children=[
Node('token', children=[PropertyNode('value', 'none')]),
Node('token', children=[PropertyNode('value', 'none')]),
Node('token', children=[PropertyNode('value', 'auto')]),
Node('token', children=[PropertyNode('value', 'defaults,rw')]),
Node('token', children=[PropertyNode('value', '0')]),
Node('token', children=[PropertyNode('value', '0')]),
])
FSTabData.bind_collection('filesystems', item_class=FilesystemData)
for i in range(0, len(FilesystemData.fields)):
path = lambda i: lambda x: x.children[i]
FilesystemData.bind_property('value', FilesystemData.fields[i], path=path(i))
|