从命令行接收json字符串的jinja2呈现程序。用于在部署环境中生成配置文件
jinjaconfig的Python项目详细描述
金针鱼
从命令行接收json字符串的jinja2呈现程序。用于在部署中生成配置文件 环境。
安装
安装jinja配置
pip install jinjaconfig
从源安装
pip install git+https://bitbucket.org/luisfernando/jinjaconfig.git
用法
usage: jinjaconfig [-h] --values [values] [file] A jinja2 renderer receiving arguments from commandline. Useful for generating config files in deployment enviroments positional arguments: file template to parse optional arguments: -h, --help show this help message and exit --values [values] json encoded values
基本用途
从命令行传递参数
jinjaconfig example.conf --values="{"celery":{"task":"mytask","path":"/home/x/Env/myenv/bin/celery"}, "num_procs":2,"user":"user","workdir":"/home/x/app/app/","logs":{"error":"/home/x/app/logs/err.log", "log":"/home/x/app/logs/log.log"}}"
从文件中传递参数(*nix,bash)并输出到文件
jinjaconfig example.conf --values="`cat arguments.json`" > result.conf
example.conf
; ================================== ; configuration example ; ================================== [program:celery] ; Set full path to celery program if using virtualenv command={{ celery.path }} worker -A {{ celery.task }} directory={{ workdir }} user={{ user }} numprocs={{ num_procs }} stdout_logfile={{ logs.log }} stderr_logfile={{ logs.error }} autostart=true autorestart=true startsecs=10 ; Need to wait for currently executing tasks to finish at shutdown. ; Increase this if you have very long running tasks. stopwaitsecs = 600 ; When resorting to send SIGKILL to the program to terminate it ; send SIGKILL to its whole process group instead, ; taking care of its children as well. killasgroup=true ; if rabbitmq is supervised, set its priority higher ; so it starts first priority=998
arguments.json
{ "celery" : { "task" : "mytask", "path" : "/home/x/Env/myenv/bin/celery" }, "num_procs" : 2, "user" : "user", "workdir" : "/home/x/app/app/", "logs" : { "error" : "/home/x/app/logs/err.log", "log" : "/home/x/app/logs/log.log" } }