qubes.GetImageRGBA 844 B

12345678910111213141516171819202122232425262728293031
  1. set -e
  2. read filename
  3. if [[ "${filename}" = xdgicon:* ]]; then
  4. # get biggest icon from hicolor theme
  5. candidate=$(find /usr/share/icons/hicolor -type f -name "${filename#*:}.png" | xargs ls --sort=size | head -1)
  6. if [[ ! "$(basename "${candidate}")" = "${filename#*:}.png" ]]; then
  7. # file not found, ls returned garbage
  8. exit 1
  9. fi
  10. filename="${candidate}"
  11. elif [[ "${filename}" = "-" ]] || [[ "${filename}" = *":-" ]]; then
  12. tmpfile="$(mktemp /tmp/qimg-XXXXXXXX)"
  13. cat > "${tmpfile}"
  14. if [[ "$filename" = *":-" ]]; then
  15. tmpfile="${filename%:*}:${tmpfile}"
  16. fi
  17. filename="${tmpfile}"
  18. elif ! [[ -r "${filename}" ]]; then
  19. exit 1
  20. fi
  21. identify -format '%w %h' "$filename"
  22. convert -depth 8 "$filename" rgba:-
  23. [[ -n "${tmpfile}" ]] && rm -f ${tmpfile} || true
  24. # vim: ft=sh ts=4 sw=4 et