summaryrefslogtreecommitdiff
path: root/reconfigure/items/fstab.py
blob: 30ab030962ceb3140bb48f50ed9155e86db020f1 (plain)
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))