Bash templating
Jump to navigation
Jump to search
Apply script
#!/usr/bin/env bash # # NAME template_apply.sh # VERSION 1.0.1 # REQUIRED envsubst # set -o errexit -o nounset -o pipefail if test "$#" -ne 2; then echo "Usage: `basename $0` <template-file> <output-file>" >&2 exit 1 fi TEMPLATE_FILE=$1 OUTPUT_FILE=$2 VARS=$(sed -e '/#/Q' ${TEMPLATE_FILE}) TEMPLATE=$(sed -e '1,/### End template/d' ${TEMPLATE_FILE}) for V in $VARS do VARNAME=`echo $V | cut -b 2-` read -r -p ${VARNAME}= $VARNAME export $VARNAME done echo "$TEMPLATE" | envsubst "${VARS}" > ${OUTPUT_FILE}