treewide: improve template expansion
also: support *.toml as extra configuration dictionaries
This commit is contained in:
@@ -82,99 +82,6 @@ user_install() {
|
||||
fi
|
||||
}
|
||||
|
||||
expand_file_envsubst() {
|
||||
local __ret __src __dst
|
||||
|
||||
__ret=0
|
||||
for __src ; do
|
||||
[ -n "${__src}" ] || continue
|
||||
|
||||
if ! [ -f "${__src}" ] ; then
|
||||
__ret=1
|
||||
log_always "file not found: ${__src}"
|
||||
continue
|
||||
fi
|
||||
|
||||
case "${__src}" in
|
||||
*.in ) ;;
|
||||
* )
|
||||
__ret=1
|
||||
log "expand_file_envsubst: file name extension mismatch: ${__src}"
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
|
||||
__dst=$(strip_suffix "${__src}" '.in')
|
||||
if [ -e "${__dst}" ] ; then
|
||||
__ret=1
|
||||
log "expand_file_envsubst: destination file already exists: ${__dst}"
|
||||
continue
|
||||
fi
|
||||
|
||||
log "Running envsubst: ${__src} -> ${__dst}"
|
||||
envsubst.sh < "${__src}" > "${__dst}" || __ret=1
|
||||
done
|
||||
return ${__ret}
|
||||
}
|
||||
|
||||
expand_file_j2cfg() {
|
||||
j2cfg-single "$@" || return $?
|
||||
}
|
||||
|
||||
expand_dir_envsubst() {
|
||||
local __template_list __have_args __ret __orig_file
|
||||
|
||||
__template_list=$(mktemp) || return
|
||||
|
||||
find "$@" -follow -name '*.in' -type f \
|
||||
| sort -uV > "${__template_list}"
|
||||
|
||||
__ret=0
|
||||
if [ -s "${__template_list}" ] ; then
|
||||
__have_args="${ENVSUBST_ARGS:+1}"
|
||||
if [ -z "${__have_args}" ] ; then
|
||||
## optimize envsubst.sh invocation by caching argument list
|
||||
## ref: envsubst.sh
|
||||
ENVSUBST_ARGS=$(mktemp) || return
|
||||
envsubst-args.sh > "${ENVSUBST_ARGS}"
|
||||
export ENVSUBST_ARGS
|
||||
fi
|
||||
|
||||
while read -r __orig_file ; do
|
||||
[ -n "${__orig_file}" ] || continue
|
||||
expand_file_envsubst "${__orig_file}" || __ret=1
|
||||
done < "${__template_list}"
|
||||
|
||||
if [ -z "${__have_args}" ] ; then
|
||||
rm -f "${ENVSUBST_ARGS}" ; unset ENVSUBST_ARGS
|
||||
fi
|
||||
unset __have_args
|
||||
fi
|
||||
|
||||
rm -f "${__template_list}" ; unset __template_list
|
||||
|
||||
return ${__ret}
|
||||
}
|
||||
|
||||
expand_dir_j2cfg() {
|
||||
local __template_list __ret
|
||||
|
||||
__template_list=$(mktemp) || return
|
||||
|
||||
find "$@" -follow -name '*.j2' -type f -printf '%p\0' \
|
||||
| sort -zuV > "${__template_list}"
|
||||
|
||||
__ret=0
|
||||
if [ -s "${__template_list}" ] ; then
|
||||
xargs -0r -n 1000 -a "${__template_list}" \
|
||||
j2cfg-multi < /dev/null || __ret=1
|
||||
fi
|
||||
|
||||
rm -f "${__template_list}" ; unset __template_list
|
||||
|
||||
return ${__ret}
|
||||
}
|
||||
|
||||
is_builtin_module() {
|
||||
[ -n "${1:-}" ] || return 1
|
||||
[ -n "${2:-}" ] || return 1
|
||||
|
Reference in New Issue
Block a user