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.70.tar.gz (31.2 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.70-py2.py3-none-any.whl (53.7 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for reconfigure-0.1.70.tar.gz
Algorithm Hash digest
SHA256 c338e409ef3396fe6a72c745516ccc11e1f63dbe90ad7aeee04cb8c3ca17e344
MD5 594548fa479b2f42cd13de9e4df3a5aa
BLAKE2b-256 4c9614b62224b17d28bb6fe8972dfc70de83d6f15be73a6398756e1802328d7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reconfigure-0.1.70-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a0171d77ac6c9ffe18e881f0e505d28403f5496ab88099617d41edd64dfffad0
MD5 55a5685ee563c494a48ac5dd452ed1c9
BLAKE2b-256 88c111b051bc2fa6d9f1ccad213333b73e7de075d5bd6c3e06583d7c7110c36c

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