32 lines
844 B
Plaintext
32 lines
844 B
Plaintext
|
set -e
|
||
|
read filename
|
||
|
|
||
|
if [[ "${filename}" = xdgicon:* ]]; then
|
||
|
# get biggest icon from hicolor theme
|
||
|
candidate=$(find /usr/share/icons/hicolor -type f -name "${filename#*:}.png" | xargs ls --sort=size | head -1)
|
||
|
|
||
|
if [[ ! "$(basename "${candidate}")" = "${filename#*:}.png" ]]; then
|
||
|
# file not found, ls returned garbage
|
||
|
exit 1
|
||
|
fi
|
||
|
filename="${candidate}"
|
||
|
|
||
|
elif [[ "${filename}" = "-" ]] || [[ "${filename}" = *":-" ]]; then
|
||
|
tmpfile="$(mktemp /tmp/qimg-XXXXXXXX)"
|
||
|
cat > "${tmpfile}"
|
||
|
if [[ "$filename" = *":-" ]]; then
|
||
|
tmpfile="${filename%:*}:${tmpfile}"
|
||
|
fi
|
||
|
filename="${tmpfile}"
|
||
|
|
||
|
elif ! [[ -r "${filename}" ]]; then
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
identify -format '%w %h' "$filename"
|
||
|
convert -depth 8 "$filename" rgba:-
|
||
|
|
||
|
[[ -n "${tmpfile}" ]] && rm -f ${tmpfile} || true
|
||
|
|
||
|
# vim: ft=sh ts=4 sw=4 et
|