json-dotenv
Project description
json-dotenv project
json-dotenv is a free and open-source, we develop it to manipulate and extract envfiles in json format.
Table of Contents
Installation
pip install json-dotenv
Usage
usage: json-dotenv [-h] [-c {list,keys,get,set,unset}] [-k KEY] [-v VALUE]
[-f FILE] [--force]
[-l {critical,error,warning,info,debug}]
[--logfile LOGFILE] [-o OUTPUT] [-q {always,never,auto}]
[--format {env,json}]
[{list,keys,get,set,unset}]
positional arguments:
{list,keys,get,set,unset}
Commands: list, keys, get, set, unset
optional arguments:
-h, --help show this help message and exit
-c {list,keys,get,set,unset}
Commands: list, keys, get, set, unset, instead of list
(deprecated)
-k KEY, --key KEY variable name to set or unset
-v VALUE, --value VALUE
variable value to set
-f FILE Location of the environment file or from stdin (-),
instead of /home/decryptus/dev/fjord/gitlab/si/json-
dotenv/.env
--force Force the output even if there is an error
-l {critical,error,warning,info,debug}, --loglevel {critical,error,warning,info,debug}
Emit traces with LOGLEVEL details, must be one of:
critical, error, warning, info, debug
--logfile LOGFILE Use log file <logfile> instead of /var/log/json-dotenv
/json-dotenv.log
-o OUTPUT Output result in file or to stdout
-q {always,never,auto}
Whether to quote or not the variable values, instead
of always. This does not affect parsing
--format {env,json} Output format env or json, instead of json
Commands
List all environment variables in file foo.env:
json-dotenv list -f foo.env
{
"LANG": "en_US.utf8",
"PATH": "/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games",
"MONIT_DOCKER_CONFIG": "vars:\n base_url_unix: unix:///var/run/docker.sock\n base_url_https: https://127.0.0.1:2376/\n tls_verify: true\nclients:\n '@import_client':\n - clients.yml.example\n local_https:\n config:\n base_url: \n tls:\n verify: \n foo_https:\n '@import_vars': foo_https.vars.yml.example\n config:\n base_url: \nctn-groups:\n php:\n match:\n - 'name:foo-php*'\n - 'image:*/php-fpm/*'\n - 'label:*php-fpm*'\n nodejs:\n match:\n - 'id:4c01db0b339c'\n - 'name:node*'\nconditions:\n mem_gt_10pct_and_cpu_gt_60pct:\n expr:\n - mem_percent > 10\n - cpu_percent > 60\n mem_usage_100MiB:\n expr:\n - mem_usage > 100 MiB\n status_not_running:\n expr:\n - status not in (pause,running)\ncommands:\n start_pause:\n exec:\n - start\n - (echo 'foo' > /tmp/bar)\n - pause\n pause_restart:\n exec:\n - pause\n - restart\n remove_force:\n exec:\n - remove:\n kwargs:\n force: true",
"SHELL": "/bin/bash",
"AUTON_CONFIG": "general:\n listen_addr: 0.0.0.0\n listen_port: 8666\n max_workers: 5\n max_requests: 5000\n max_life_time: 3600\n lock_timeout: 60\n charset: utf-8\n content_type: 'application/json; charset=utf-8'\n #auth_basic: 'Restricted'\n #auth_basic_file: '/etc/auton/auton.passwd'\nendpoints:\n si.corp-ansible:\n plugin: subproc\n config:\n prog: ansible-playbook\n timeout: 3600\n si.corp-terraform:\n plugin: subproc\n config:\n prog: terraform\n timeout: 3600\n curl:\n plugin: subproc\n config:\n prog: curl\n timeout: 3600\nmodules:\n job:\n routes:\n run:\n handler: 'job_run'\n regexp: '^run/(?P<endpoint>[^\\/]+)/(?P<id>[a-z0-9][a-z0-9\\-]{7,63})$'\n safe_init: true\n auth: false\n op: 'POST'\n status:\n handler: 'job_status'\n regexp: '^status/(?P<endpoint>[^\\/]+)/(?P<id>[a-z0-9][a-z0-9\\-]{7,63})$'\n auth: false\n op: 'GET'"
}
List all environment variables name in file foo.env:
json-dotenv keys -f foo.env
[
"LANG",
"PATH",
"MONIT_DOCKER_CONFIG",
"SHELL",
"AUTON_CONFIG"
]
Get foo.env contents from stdin and set variables AUTON_CONFIG=bar and toto=titi:
cat foo.env | json-dotenv set -f - -k AUTON_CONFIG -v bar -k toto -v titi
{
"LANG": "en_US.utf8",
"SHELL": "/bin/bash",
"toto": "titi",
"AUTON_CONFIG": "bar",
"MONIT_DOCKER_CONFIG": "vars:\n base_url_unix: unix:///var/run/docker.sock\n base_url_https: https://127.0.0.1:2376/\n tls_verify: true\nclients:\n '@import_client':\n - clients.yml.example\n local_https:\n config:\n base_url: \n tls:\n verify: \n foo_https:\n '@import_vars': foo_https.vars.yml.example\n config:\n base_url: \nctn-groups:\n php:\n match:\n - 'name:foo-php*'\n - 'image:*/php-fpm/*'\n - 'label:*php-fpm*'\n nodejs:\n match:\n - 'id:4c01db0b339c'\n - 'name:node*'\nconditions:\n mem_gt_10pct_and_cpu_gt_60pct:\n expr:\n - mem_percent > 10\n - cpu_percent > 60\n mem_usage_100MiB:\n expr:\n - mem_usage > 100 MiB\n status_not_running:\n expr:\n - status not in (pause,running)\ncommands:\n start_pause:\n exec:\n - start\n - (echo 'foo' > /tmp/bar)\n - pause\n pause_restart:\n exec:\n - pause\n - restart\n remove_force:\n exec:\n - remove:\n kwargs:\n force: true",
"PATH": "/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
}
Get variables LANG and PATH from foo.env:
json-dotenv get -f foo.env -k LANG -k PATH
{
"LANG": "en_US.utf8",
"PATH": "/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
}
Unset variables MONIT_DOCKER_CONFIG and AUTON_CONFIG from file foo.env (file not modified):
json-dotenv unset -f foo.env -k MONIT_DOCKER_CONFIG -k AUTON_CONFIG
{
"LANG": "en_US.utf8",
"PATH": "/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games",
"SHELL": "/bin/bash"
}
Set variables TOTO and BAR and output result in file bar.json:
json-dotenv -f '' set -k TOTO -v tutu -k BAR -v foo -o bar.json
Set variables TOTO and BAR and output result in file bar.env (environment variables format):
json-dotenv -f '' set -k TOTO -v tutu -k BAR -v foo --format env -o bar.env
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for json_dotenv-0.0.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cb803e17be3e23b2b81a32e2c80f4920eb8895f800c1ccb117ee18b797ebf23 |
|
MD5 | 8121e6703bccd84f7a300c76ea83846c |
|
BLAKE2b-256 | 1d3786c29d1e4c77fd3151e02c7f98078c668374cd50f98904f7d30e98fa7ee6 |
Hashes for json_dotenv-0.0.10-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1dadf22418d9daf6ef407185af229853a2f48e6d4a427e6d88c41fe94ebe021 |
|
MD5 | 1007753afd44696b0f190d4c15d0e367 |
|
BLAKE2b-256 | 3ff33bbf2fda7b5ea53c0b8817f530a8c4e8007804ab6c1cf1f2479129d758dd |