Skip to main content
https://travis-ci.org/Eugeny/reconfigure.png

Browse API on SourceGraph

Quickstart

>>> from reconfigure.configs import FSTabConfig
>>> from reconfigure.items.fstab import FilesystemData
>>>
>>> config = FSTabConfig(path='/etc/fstab')
>>> config.load()
>>> print config.tree
{
    "filesystems": [
        {
            "passno": "0",
            "device": "proc",
            "mountpoint": "/proc",
            "freq": "0",
            "type": "proc",
            "options": "nodev,noexec,nosuid"
        },
        {
            "passno": "1",
            "device": "UUID=dfccef1e-d46c-45b8-969d-51391898c55e",
            "mountpoint": "/",
            "freq": "0",
            "type": "ext4",
            "options": "errors=remount-ro"
        }
    ]
}
>>> tmpfs = FilesystemData()
>>> tmpfs.mountpoint = '/srv/cache'
>>> tmpfs.type = 'tmpfs'
>>> tmpfs.device = 'none'
>>> config.tree.filesystems.append(tmpfs)
>>> config.save()
>>> quit()
$ cat /etc/fstab
proc    /proc   proc    nodev,noexec,nosuid     0       0
UUID=dfccef1e-d46c-45b8-969d-51391898c55e / ext4 errors=remount-ro 0 1
none    /srv/cache      tmpfs   none    0       0

This is actually a shortcut to:

>>> from reconfigure.parsers import SSVParser
>>> from reconfigure.builders import BoundBuilder
>>> from reconfigure.items.fstab import FSTabData
>>> content = open('/etc/fstab').read()
>>> syntax_tree = SSVParser().parse(content)
>>> syntax_tree
<reconfigure.nodes.RootNode object at 0x7f1319eeec50>
>>> print syntax_tree
(None)
        (line)
                (token)
                        value = proc
                (token)
                        value = /proc
                (token)
                        value = proc
                (token)
                        value = nodev,noexec,nosuid
                (token)
                        value = 0
                (token)
                        value = 0
        (line)
                (token)
                        value = UUID=83810b56-ef4b-44de-85c8-58dc589aef48
                (token)
                        value = /
                (token)
                        value = ext4
                (token)
                        value = errors=remount-ro
                (token)
                        value = 0
                (token)
                        value = 1

>>> builder = BoundBuilder(FSTabData)
>>> data_tree = builder.build(syntax_tree)
>>> print data_tree
{
    "filesystems": [
        {
            "passno": "0",
            "device": "proc",
            "mountpoint": "/proc",
            "freq": "0",
            "type": "proc",
            "options": "nodev,noexec,nosuid"
        },
        {
            "passno": "1",
            "device": "UUID=83810b56-ef4b-44de-85c8-58dc589aef48",
            "mountpoint": "/",
            "freq": "0",
            "type": "ext4",
            "options": "errors=remount-ro"
        }
    ]
}

Parsers and builders can be paired in almost any possible combination.

Reconfigure can be easily extended with your own parsers and builders - read the docs!

Supported configs:

  • Ajenti (ajenti)

  • BIND9 DNS (bind9)

  • Crontabs (crontab)

  • Samba CTDB (ctdb)

  • ISC DHCPD / uDHCPD (dhcpd)

  • NFS /etc/exports (exports)

  • /etc/fstab (fstab)

  • /etc/group (group)

  • /etc/hosts (hosts)

  • iptables-save dump (iptables)

  • Netatalk afp.conf (netatalk)

  • NSD DNS (nsd)

  • /etc/passwd (passwd)

  • /etc/resolv.conf (resolv)

  • Samba (samba)

  • Squid 3 (squid)

  • Supervisord (supervisor)

Included parsers:

  • BIND9 config (bind9)

  • Crontab (crontab)

  • NFS Exports (exports)

  • .ini (ini)

  • iptables-save (iptables)

  • nginx-like (nginx)

  • squid (squid)

  • nsd (nsd)

  • CSV-like space-separated values (ssv)

  • JSON (jsonparser)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reconfigure-0.1.76.tar.gz (31.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reconfigure-0.1.76-py2.py3-none-any.whl (53.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file reconfigure-0.1.76.tar.gz.

File metadata

  • Download URL: reconfigure-0.1.76.tar.gz
  • Upload date:
  • Size: 31.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for reconfigure-0.1.76.tar.gz
Algorithm Hash digest
SHA256 fec38aea9ce05d0605570cfe2272d0507f1b31140c5fded52bad25049b604879
MD5 de21cad58eb021344b8847a6fc9afea8
BLAKE2b-256 c6ccfcd0509168d5e606ff0af7f7b11d6dac3e5c4fb111c537c9d5f4d0c1a3f7

See more details on using hashes here.

File details

Details for the file reconfigure-0.1.76-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for reconfigure-0.1.76-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d8b748d2ceed041a36d6e484cc1a65fb178b9c497fcc93ef8490cbad399df69c
MD5 fbe8aab5d8ebea1960490901f9affc21
BLAKE2b-256 0343ec70698ed0f17554fa059542d1715a3385c0517624c47aabb2c6f7fb2965

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page