set -e read filename if [[ "${filename}" = xdgicon:* ]]; then # get biggest icon from hicolor theme filename="${filename#*:}.png" candidate= for dir in /usr/share/icons/{hicolor/,}; do candidate=$(find -L "${dir}" -type f -name "${filename}") if [[ -n "${candidate}" ]]; then candidate=$(echo "${candidate}" | xargs ls --sort=size | head -1) break fi done [[ -n "${candidate}" ]] 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 in F18 (6.7) adds implicit '\n' to format, # whereas identify in F20 (6.8) does not identify -format '%w %h\n' "$filename" | sed -e '/^$/d' convert -depth 8 "$filename" rgba:- [[ -n "${tmpfile}" ]] && rm -f ${tmpfile} || true # vim: ft=sh ts=4 sw=4 et