diff options
author | Andrew Shadura <andrew@shadura.me> | 2015-08-20 15:58:26 +0200 |
---|---|---|
committer | Andrew Shadura <andrew@shadura.me> | 2015-08-20 15:58:26 +0200 |
commit | ff1408420159488a106492ccd11dd234967029b6 (patch) | |
tree | 473420cee1c5229a427ec4cafead1aa6c0a26800 /README.rst |
Imported Upstream version 0.1.29
Diffstat (limited to 'README.rst')
-rw-r--r-- | README.rst | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..b45af01 --- /dev/null +++ b/README.rst @@ -0,0 +1,140 @@ +Reconfigure - Python object mapping for config files. + +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``)
\ No newline at end of file |