penguin/monok8s

k8s image for Mono Gateway Dev Kit

scripts/merge-env.sh

raw ยท 647 bytes

#!/bin/sh
set -eu

INPUT="${1:?input file required}"
OUTPUT="${2:?output file required}"

mkdir -p "$(dirname "$OUTPUT")"

awk '
function trim(s) {
    sub(/^[[:space:]]+/, "", s)
    sub(/[[:space:]]+$/, "", s)
    return s
}

BEGIN {
    for (k in ENVIRON) {
        env[k] = ENVIRON[k]
    }
}

/^[[:space:]]*#/ || /^[[:space:]]*$/ {
    print
    next
}

{
    line = $0
    eq = index(line, "=")

    if (eq == 0) {
        print line
        next
    }

    key = trim(substr(line, 1, eq - 1))
    val = substr(line, eq + 1)

    if (key in env) {
        print key "=" env[key]
    } else {
        print line
    }
}
' "$INPUT" > "$OUTPUT"