我希望设计一个 JQ 函数,它允许管理 JSON 文件本身内的数据替换以及 shell 环境替换(和 shell 函数调用)。例如我有这个文件...
{
"services" : {
"blah" : {
"server" : "https://my.server.home",
"role_id" : "ABC",
"login" : {
"path" : "v1/auth/approle/login",
"connection_data" : {
"role_id" : "{{services.blah.role_id}}",
"secret_id" : "${BLAH_SECRET}.${MY_DEFINED_ENVVAR}"
},
"other" : "$( get_workspace )/ght"
}
}
},
"applications" : {
"curl" : {
"version" : "7.80"
}
}
}
并希望得到这样的结果:
{
"services": {
"blah": {
"server": "my.server.home",
"role_id": "ABC",
"login": {
"path": "v1/auth/approle/login",
"connection_data": {
"role_id": "ABC",
"secret_id": "my-secret.xyz"
},
"other": "/abc/my_workspace/ght"
}
}
},
"applications": {
"curl": {
"version": "7.80"
}
}
}
在这样做时,我希望能够控制用于描述对 JSON 文件的内部访问的标记,以便从那些用于显示应该运行 shell 函数与 shell 环境变量的标记中进行替换。
我认为正确的方法是使用 jq's走方法与测试的合适函数结合使用细绳允许多次处理该行,直到它不再改变(即所有替换都已完成)。
有什么建议么???