From a50c48b6e1672267dd831972e76fd2130ef3b3e9 Mon Sep 17 00:00:00 2001 From: Max Christian Pohle Date: Mon, 7 Sep 2015 17:17:02 +0200 Subject: cleaned working directory and simplified installation, mimetype previews now possible --- icons-mkmimetypes.sh | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 icons-mkmimetypes.sh (limited to 'icons-mkmimetypes.sh') diff --git a/icons-mkmimetypes.sh b/icons-mkmimetypes.sh new file mode 100755 index 0000000..202dbd5 --- /dev/null +++ b/icons-mkmimetypes.sh @@ -0,0 +1,64 @@ +$TEMPLATE_FOLDER_FILE='file' # .png gets added automatically +#INPUT_FILE=test-globs +#INPUT_FILE=/usr/share/mime/generic-icons < /usr/share/mime/globs +INPUT_FILE=$1 +TEMPLATE_FOLDER='scalable/mimetypes-templates' +OUT_PATH="scalable/mimetypes" + +MAX_LINES=`cat $INPUT_FILE | wc -l` +CUR_LINE=0 + +IFS=':' +while read A B +do + if [[ "$A" == "#"* ]]; then continue; fi + + MIME=$A + FILE=${A/\//-} + TEXT=${B/\*\./} + + + ((CUR_LINE++)) + printf "[%-4d/%-4d] checking for %s\n" "$CUR_LINE" "$MAX_LINES" "$FILE.png" + + if [[ -f "$TEMPLATE_FOLDER/$FILE.png" ]]; then + echo "using $TEMPLATE_FOLDER" + cp "$TEMPLATE_FOLDER/$FILE.png" "$OUT_PATH/$FILE.png" + else + + FIND=$FILE + while [[ 1 ]] + do + # printf "%s\n" $FIND + if [[ -f "$TEMPLATE_FOLDER/$FIND.png" ]]; then break; fi + + if [[ "$FIND" == "${FIND%-*}" ]]; then FIND="$$TEMPLATE_FOLDER_FILE"; break; fi + FIND=${FIND%-*} + done + + # create $TEMPLATE_FOLDER file... just in case there is no desktop file... + cp "$TEMPLATE_FOLDER/$FIND.png" "$OUT_PATH/$FILE.png" + + DESKTOP=`xdg-mime query default $MIME` + if [[ -f /usr/share/applications/$DESKTOP ]]; then + ICONTEXT=`grep -o 'Icon=.*' /usr/share/applications/$DESKTOP` + APPICON=`find ../../ /usr/share/icons/Adwaita/scalable /usr/share/icons/hicolor/scalable -path '*apps*' -name "${ICONTEXT/Icon=/}*" -type f -print -quit` + + printf "%-12s%s\t%s\t%s\t%s\n" "" $MIME $DESKTOP $FIND $APPICON + + if [[ "$APPICON" ]]; then + convert \ + "$TEMPLATE_FOLDER/$FIND.png" \( -density 400 $APPICON -resize 256 \) \ + -gravity north -geometry +0+20 \ + -compose darken -composite $OUT_PATH/$FILE.png + fi + fi + fi + + mogrify "$OUT_PATH/$FILE.png" \ + -gravity northwest -pointsize 60 -rotate 90 \ + -stroke '#444' -strokewidth 2 -annotate 0 "${FILE##*-}" \ + -fill '#ff0' -annotate 0 "${FILE##*-}" \ + -rotate -90 -resize 256 $OUT_PATH/$FILE.png + +done < $INPUT_FILE -- cgit v1.2.3