f32a0ac33b
Fixes small bug involving determining relative path
40 lines
946 B
Bash
Executable File
40 lines
946 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eu
|
|
|
|
if [[ $# == 0 ]]; then
|
|
FILES=(-)
|
|
else
|
|
FILES=("${@}")
|
|
fi
|
|
|
|
CUR_DIR=$(dirname ${BASH_SOURCE[0]})
|
|
|
|
for FILE in "${FILES[@]}"; do
|
|
if [ "${FILE}" == "-" ]; then
|
|
FILE=/dev/stdin
|
|
fi
|
|
while IFS='' read -r LINE || [ -n "${LINE}" ]; do
|
|
|
|
#My template substitution
|
|
while [[ "$LINE" =~ (\[\{)([A-Za-z0-9_]*)(\}\]) ]]; do
|
|
LINE=${LINE/"${BASH_REMATCH[0]}"/${!BASH_REMATCH[2]-}}
|
|
done
|
|
|
|
#My SOURCE substitution
|
|
if echo $LINE | grep -q ^SOURCE; then
|
|
SOURCE=$(echo "${LINE}" | sed -E 's|^SOURCE[ ]+(.*)|\1|')
|
|
if [ "${SOURCE:0:1}" != "/" ] && [ -f "${CUR_DIR}/${SOURCE}" ]; then
|
|
SOURCE="${CUR_DIR}/${SOURCE}"
|
|
fi
|
|
if [ ! -f "${SOURCE}" ]; then
|
|
echo "Could not find a readable ${SOURCE}" >& 2
|
|
exit 1
|
|
fi
|
|
"${BASH_SOURCE[0]}" "${SOURCE}" | grep -vi '^FROM' | grep -vi '^MAINTAINER'
|
|
else
|
|
echo "${LINE}"
|
|
fi
|
|
done < ${FILE}
|
|
done
|