prev='' next='' idoff=0
depth=0 ucdepth=-1
-base64() {
- uuencode -m - <"$1" \
- | sed '1d; :X;$!{N;bX;}; s;\n;;g; s;=\+;;g;'
+_base64() {
+ # busybox does not ship base64, only uuencode. Other platforms might need base64 instead
+ if which uuencode >/dev/null; then
+ uuencode -m - <"$1" \
+ | sed '1d; :X;$!{N;bX;}; s;\n;;g; s;=\+;;g;'
+ elif which busybox >/dev/null; then
+ busybox uuencode -m - <"$1" \
+ | sed '1d; :X;$!{N;bX;}; s;\n;;g; s;=\+;;g;'
+ else
+ base64 <"$1" \
+ | sed ':X;$!{N;bX;}; s;\n;;g; s;=\+;;g;'
+ fi
}
{ "${0%/*}"/cgilite/html-sh.sed || cat; } \
| {
- line="$(line)"
+ read -r line
while :; do
tag="${tag}${line%%>*}"
if [ "$line" = "${line%%>*}" ]; then
# $line did not contain ">" and thus was added to $tag entirely
- if ! line="$(line)"; then
+ if ! read -r line; then
printf %s\\n "$tag"
break
fi
pre="${tag%%url(*)*}"
post="${tag#*url(*)}"
file="${tag#${pre}url(}" file="${file%)$post}"
- file="${file#"}" file="${file%"}"
+ file="${file#\"}" file="${file%\"}"
echo Inlining Background Image "$file" >&2
if [ -r "$file" ]; then
- tag="${pre}url('data:image/${file##*.};base64,$(base64 "$file")')${post}"
+ tag="${pre}url('data:image/${file##*.};base64,$(_base64 "$file")')${post}"
fi
done >/dev/null
file="${tag#${pre}src=\"}" file="${file%\"$post}"
echo Inlining Image "$file" >&2
if [ -r "$file" ]; then
- tag="${pre}src=\"data:image/${file##*.};base64,$(base64 "${file}")\"${post}"
+ tag="${pre}src=\"data:image/${file##*.};base64,$(_base64 "${file}")\"${post}"
fi
done >/dev/null