38 lines
939 B
Bash
Executable File
38 lines
939 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
|
|
|
|
#https://gist.github.com/niclashoyer/8146033
|
|
LINE=$(echo "$LINE" | perl -p -e 's/\[\{([^}:]+)(:([^}:]+))?\}\]/defined $ENV{$1} ? $ENV{$1} : $3/eg')
|
|
|
|
#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
|