aboutsummaryrefslogtreecommitdiff
path: root/icons-mkmimetypes.sh
diff options
context:
space:
mode:
Diffstat (limited to 'icons-mkmimetypes.sh')
-rwxr-xr-xicons-mkmimetypes.sh64
1 files changed, 64 insertions, 0 deletions
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 @@
1$TEMPLATE_FOLDER_FILE='file' # .png gets added automatically
2#INPUT_FILE=test-globs
3#INPUT_FILE=/usr/share/mime/generic-icons < /usr/share/mime/globs
4INPUT_FILE=$1
5TEMPLATE_FOLDER='scalable/mimetypes-templates'
6OUT_PATH="scalable/mimetypes"
7
8MAX_LINES=`cat $INPUT_FILE | wc -l`
9CUR_LINE=0
10
11IFS=':'
12while read A B
13do
14 if [[ "$A" == "#"* ]]; then continue; fi
15
16 MIME=$A
17 FILE=${A/\//-}
18 TEXT=${B/\*\./}
19
20
21 ((CUR_LINE++))
22 printf "[%-4d/%-4d] checking for %s\n" "$CUR_LINE" "$MAX_LINES" "$FILE.png"
23
24 if [[ -f "$TEMPLATE_FOLDER/$FILE.png" ]]; then
25 echo "using $TEMPLATE_FOLDER"
26 cp "$TEMPLATE_FOLDER/$FILE.png" "$OUT_PATH/$FILE.png"
27 else
28
29 FIND=$FILE
30 while [[ 1 ]]
31 do
32 # printf "%s\n" $FIND
33 if [[ -f "$TEMPLATE_FOLDER/$FIND.png" ]]; then break; fi
34
35 if [[ "$FIND" == "${FIND%-*}" ]]; then FIND="$$TEMPLATE_FOLDER_FILE"; break; fi
36 FIND=${FIND%-*}
37 done
38
39 # create $TEMPLATE_FOLDER file... just in case there is no desktop file...
40 cp "$TEMPLATE_FOLDER/$FIND.png" "$OUT_PATH/$FILE.png"
41
42 DESKTOP=`xdg-mime query default $MIME`
43 if [[ -f /usr/share/applications/$DESKTOP ]]; then
44 ICONTEXT=`grep -o 'Icon=.*' /usr/share/applications/$DESKTOP`
45 APPICON=`find ../../ /usr/share/icons/Adwaita/scalable /usr/share/icons/hicolor/scalable -path '*apps*' -name "${ICONTEXT/Icon=/}*" -type f -print -quit`
46
47 printf "%-12s%s\t%s\t%s\t%s\n" "" $MIME $DESKTOP $FIND $APPICON
48
49 if [[ "$APPICON" ]]; then
50 convert \
51 "$TEMPLATE_FOLDER/$FIND.png" \( -density 400 $APPICON -resize 256 \) \
52 -gravity north -geometry +0+20 \
53 -compose darken -composite $OUT_PATH/$FILE.png
54 fi
55 fi
56 fi
57
58 mogrify "$OUT_PATH/$FILE.png" \
59 -gravity northwest -pointsize 60 -rotate 90 \
60 -stroke '#444' -strokewidth 2 -annotate 0 "${FILE##*-}" \
61 -fill '#ff0' -annotate 0 "${FILE##*-}" \
62 -rotate -90 -resize 256 $OUT_PATH/$FILE.png
63
64done < $INPUT_FILE
..