Consistent CLI config file modifier
Project description
Cocof
Cocof, short for consistent config file, is a python module that allows the modification of different key-value config files on the comand line.
Most importantly: For YAML and TOML it It will keep line breaks and comments the same. So the file will look more or less like the original (depending on the operations on it of course).
Currently supported formats are TOML, YAML, JSON and PLIST.
Install
$ pip install cocof
Usage
$ cocof --help
Usage: cocof [OPTIONS] FILEPATH JSONPATCH
Cocof runs the provided 'jsonpatch' modifications on the configuration
file given with the 'filepath' argument. Use the '--format' option to tell
the file format. If not given cocof will try to guess the file format
based on the file extension. Use '-' as filepath for stdin, in which case
the output goes to stdout and you must provide the format of the data via
the '--format' option.
Options:
-f, --format [toml|yaml|json|plist]
The format of the file. Obligatory if
filepath is '-' (stdin).
--help Show this message and exit.
Cocof takes a file path and a JSON patch string as arguments.
It then modifies the datastructure given by the file's content accordingly and
writies it back to the same file (in-place editing).
You can also tell cocof
to read from stdin
, in which case it will output
it's result to stdout
. TOML, YAML and JSON expect their content to be utf-8
encoded. PLIST expects either an utf-8
encoded xml content or binary content.
Examples
# example.toml
title = "Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00 # Inline comment
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
Using {"op": "add", "path": "/subtitle", "value": "Sub"}
as modification
yields:
$ cocof ./example.toml '[{"op": "add", "path": "/subtitle", "value": "Sub"}]'`
$ cat ./example.toml
# example.toml
title = "Example"
subtitle = "Sub"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00 # Inline comment
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file cocof-1.2.0.tar.gz
.
File metadata
- Download URL: cocof-1.2.0.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.4.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36d59408fae0df995ff88b554a779373bd5e8189f99ffe3c058bdfbf8d6ae439 |
|
MD5 | 61f616ce28a36ace3e8be667bf322422 |
|
BLAKE2b-256 | 0a1a13b697749fa480e09e8356641b8816f21e3f4b01b0be186e22e60c0a6dbe |