Skip to content

Instantly share code, notes, and snippets.

@drconopoima
Created April 24, 2023 22:04
Show Gist options
  • Save drconopoima/fc3108d544ae4f0f5728e0a8421496d6 to your computer and use it in GitHub Desktop.
Save drconopoima/fc3108d544ae4f0f5728e0a8421496d6 to your computer and use it in GitHub Desktop.
fetchmsttfonts
7099c389126d2af146ff082a840c77787f28e59cc8b5fd4147b9a45a34c649bc69ba6ec7c338703950389fce3ac3a7f118f503b7434c7ceb54c89d6210508bd4 *andale32.exe
299cb200f72f146fedfb2bb1895c36f5234aa5abd084e7c962ec7b14f087c1f582b51f5fdcb72e48b806ee02661c34766ca8a03bb0f2fadf662aaf46cc5f0e48 *arial32.exe
8a947764f2c725f2c506c12ca6f77142402174a0fadeeb72b211931136d82b541bb279b415d74032bc51b00efac9516e5cf68d8d4f172ff8549398ca28722c3a *arialb32.exe
6ad11015d568d58f6e4375e04411dd702b5c4e454b82998b5044cd8352dae27fea1df6469a05067ccc8c14f4ba87ec99e8329c104551dde1eb48be8ce2b78708 *comic32.exe
7e2425d578dd626cc2b418efec72c53e35392c60610cf5e4a99c614fa86cb673167fbcc1691fe59b99bcd19e8f261321be9ea7e30fb84c80ce0a312fd47045c5 *courie32.exe
33e623179af8a418845fed64f7b176a1e721ee4e0ece29d3135d01b81be4238454dd4eb3d2166e8587bb7cced0c258a294eb55e637855f818deb28853f006ef4 *georgi32.exe
6f9318806efbd3b3727e71170cc3ab378d6151887abcb7fad01bd4cb45c2e127f8aea81a3a99bc77c2ce2424fb1acbc230ffc6c23e390c8800710b45b1367c3b *impact32.exe
6035b971290cd0795389c2e8a0f02d2f079468e197a1db791189519e12aaf3fcdaf6e8842a7eeca386ad7f48f85a0b07cc5480b98ee06b0529688fd5550d3ee2 *times32.exe
4ba8afac0a419e30286f5b209b9fabf41aa480ceabb1bf3141deb775793510db826ba915b67fdfe3423d227c3e640bf7d682b26c0ce90f3c0e2cdf8d4831537e *trebuc32.exe
96749fd17e4efeccdd467cb8f42ce30fc3a9e86eceef8b9c0934a4693d12944b54864006c5852c0d641a5c7b250553e5c6c21d716e446d02ef392299c7833d58 *verdan32.exe
2784ce1cee66f0f00f77d84d7aaa52a44d017245e0269558729003205c10a5e5368f9909beee733e77e202730b3cee2b2357fdbdb597a0023c6412e050b3a3ad *webdin32.exe
#!/bin/sh
#Sourced from RPM OpenSUSE Tumbleweed package fetchmsstfonts.rpm at https://build.opensuse.org/package/binaries/openSUSE:Factory/fetchmsttfonts/standard
EULA="http://corefonts.sourceforge.net/eula.htm"
POST_MESSAGE="/var/adm/update-messages/fetchmsttfonts-12.0-1.9-1"
FONTS=" \
https://sourceforge.net/projects/corefonts/files/the%20fonts/final/andale32.exe \
https://sourceforge.net/projects/corefonts/files/the%20fonts/final/arial32.exe \
https://sourceforge.net/projects/corefonts/files/the%20fonts/final/arialb32.exe \
https://sourceforge.net/projects/corefonts/files/the%20fonts/final/comic32.exe \
https://sourceforge.net/projects/corefonts/files/the%20fonts/final/courie32.exe \
https://sourceforge.net/projects/corefonts/files/the%20fonts/final/georgi32.exe \
https://sourceforge.net/projects/corefonts/files/the%20fonts/final/impact32.exe \
https://sourceforge.net/projects/corefonts/files/the%20fonts/final/times32.exe \
https://sourceforge.net/projects/corefonts/files/the%20fonts/final/trebuc32.exe \
https://sourceforge.net/projects/corefonts/files/the%20fonts/final/verdan32.exe \
https://sourceforge.net/projects/corefonts/files/the%20fonts/final/webdin32.exe \
"
# same order like FONTS...
FILES="andalemo.ttf arial.ttf arialbi.ttf comic.ttf cour.ttf georgia.ttf impact.ttf times.ttf trebuc.ttf verdana.ttf webdings.ttf"
CURL_OPTIONS="-L -s --speed-limit 3500 --speed-time 15"
echo "EULA:"
if [ -e /usr/share/doc/corefonts/EULA.html ]; then
echo "already present"
else
echo -n " Fetching ... "
curl $CURL_OPTIONS -o /usr/share/doc/corefonts/EULA.html $EULA || \
rm -f /usr/share/doc/corefonts/EULA.html
echo "done"
fi
tmpname=$(basename "$0")
tmpdir=$(mktemp -d "/tmp/$tmpname.XXXXXX")
trap "rm -rf $tmpdir" EXIT
if [ $? -ne 0 ]; then
echo "$0: Can't create temp dir, exiting..."
exit 4
fi
all_skipped=true
for archive in $FONTS; do
# POSIX sh does not know arrays, so just pop the first element from FILES 'list'
font=${FILES%% *}
FILES=${FILES#* }
file=${archive##*/}
echo "$file ($archive):"
if [ -e "/usr/share/fonts/truetype/$font" ]; then
echo "font already installed, skipping..."
continue
fi
all_skipped=false
echo -n " Fetching ... "
if ! curl $CURL_OPTIONS -o "$file" "$archive"; then
rm -f "$file"
echo "failed ... deleted!"
continue
fi
if ! grep "$file" "corefonts.sha512" | sha512sum --check --quiet --status > /dev/null 2>&1; then
rm -f "$file"
echo "checksum mismatch for $file ... deleted!"
continue
fi
echo "done"
echo -n " Extracting ... "
if ! cabextract -l "$file" >/dev/null 2>&1; then
rm -f "$file"
echo "failed ... deleted!"
else
cabextract "$file" >/dev/null 2>&1
echo "done"
success=true
fi
rm -f "$file"
done
if $all_skipped; then
echo "*** No update necessary. ***"
# do not annoy with an interactive update message, just exit
# also skip EULA display
exit
fi
if [ "x$success" != "x" ]; then
for i in ./*.[Tt][Tt][CFcf]; do
lower=$(echo "$i" | tr "[:upper:]" "[:lower:]")
test "$i" != "$lower" && mv "$i" "$lower"
done
chmod 644 ./*.tt[cf]
mv -f ./*.tt[cf] /usr/share/fonts/truetype
/usr/sbin/fonts-config
echo "*** Fonts installed. ***" | tee $POST_MESSAGE
else
echo "*** No Fonts installed. ***" | tee $POST_MESSAGE
fi
test -f /usr/share/doc/corefonts/EULA.html && w3m -dump /usr/share/doc/corefonts/EULA.html | tee $POST_MESSAGE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment