bash 스크립트를 사용하여 YAML 파일의 변수 자리 표시자를 JSON 파일의 중첩 값으로 바꾸는 방법

bash 스크립트를 사용하여 YAML 파일의 변수 자리 표시자를 JSON 파일의 중첩 값으로 바꾸는 방법

중첩된 JSON 파일에서 환경 변수를 가져와 YAML 파일에서 일치/교체해야 하는 특정 CI/CD 빌드 단계가 있습니다.

예를 들어 내 JSON 파일에서는 다음과 같습니다.

{
    "development": {
        "ENV1": "My Value"
    }
}

그런 다음 자리 표시자를 사용하여 YAML 파일을 정의하겠습니다 ${development.ENV1}.

env_variables:
  ENV1: ${development.ENV1}

이렇게 하면 bash 스크립트가 실행될 때 다음과 같이 파일이 업데이트됩니다.

env_variables:
  ENV1: "My Value"

값을 내보내고 환경 envsubst변수를 사용하여 이를 수행하는 참조를 찾았습니다.구글 커뮤니티 빌더이와 같이:

for f in $(ls ${files[*]}); do
    echo "Pre-processing ${f}..." >&2
    cat ${f} | envsubst ${shell_format:+"${shell_format}"} > ${f}.processed
    mv ${f}.processed ${f}
done

하지만 중첩된 JSON을 사용하여 이와 동등한 작업을 수행하는 방법을 잘 모르겠습니다. 이것은 bash에서의 첫 번째 "진짜" 시도이므로 계속해서 배우고 있습니다!

관련 정보