diff options
Diffstat (limited to 'fulfill_template.sh')
-rwxr-xr-x | fulfill_template.sh | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/fulfill_template.sh b/fulfill_template.sh new file mode 100755 index 000000000000..255b3157b266 --- /dev/null +++ b/fulfill_template.sh @@ -0,0 +1,69 @@ +#!/bin/sh +# +# Usage: ./install_from_template.sh TEMPLATE_FILE OUTPUT_FILE OEM_FILE +# + +_TEMPLATE_="${1}" +_OUTPUT_="${2}" +_OEMFILE_="${3}" + +[ -z "${_TEMPLATE_}" -o -z "${_OUTPUT_}" -o -z "${_OEMFILE_}" ] && return 1 + + +# Taken from uld/noarch/package_utils -> get_oem_field() + +_get_oem_field() { + [ -z "${1}" ] && return 1 + grep "^${1}=" "${_OEMFILE_}" 2>/dev/null | sed 's/\"//g' | sed "s/${1}=\(.*\)/\1/" +} + + +# Template files can use tab() function to insert '\t' symbol +# Taken from uld/noarch/scanner-script.pkg -> fill_full_template() + +tab2() { + # ${1} - number of tabs inserted + local amount=${1} + if [ -z "${amount}" ] ; then + amount="1"; + fi + for i in $(seq 1 ${amount}) ; do + echo -n " " + done +} + +tab() { + # ${1} - number of tabs inserted + local amount=${1} + if [ -z "${amount}" ] ; then + amount="1"; + fi + for i in $(seq 1 ${amount}) ; do + echo -n " " + done +} + + +# Callback variables + +VID="$(_get_oem_field "VID")" +PIDS="$(_get_oem_field "PIDS")" + + +# Other variables + +_TMP_FILE_="$(mktemp -t tmp_file.XXXX)" + + +# Script body + +while read line; do + eval echo \"${line}\" >> "${_TMP_FILE_}" +done < "${_TEMPLATE_}" + +install -Dm755 "${_TMP_FILE_}" "${_OUTPUT_}" +rm "${_TMP_FILE_}" + + +# EOF + |