1
0
mirror of https://github.com/aquatix/dotfiles.git synced 2025-12-07 00:05:10 +01:00
Files
dotfiles/bin/font_update

274 lines
9.3 KiB
Bash
Executable File

#!/bin/bash
function install_font {
if [ -e "$2" ] && [ ! -L "$2" ]; then
echo "Already exists as real file: $2"
elif [ -L "$2" ]; then
echo "Skipped: $2"
else
echo "Linked font: $2"
ln -s "$1" "$2"
fi
}
IFS=$'\n'
FONTS_CODING_OLD=$'Hack/Bold/complete/Hack Bold Nerd Font Complete Mono.ttf
Hack/Regular/complete/Hack Regular Nerd Font Complete Mono.ttf
Hack/BoldItalic/complete/Hack Bold Italic Nerd Font Complete Mono.ttf
Hack/Italic/complete/Hack Italic Nerd Font Complete Mono.ttf
FiraCode/Bold/complete/Fira Code Bold Nerd Font Complete Mono.ttf
FiraCode/Regular/complete/Fira Code Regular Nerd Font Complete Mono.ttf
SourceCodePro/Bold/complete/Sauce Code Pro Bold Nerd Font Complete Mono.ttf
SourceCodePro/Regular/complete/Sauce Code Pro Nerd Font Complete Mono.ttf
SourceCodePro/Light/complete/Sauce Code Pro Light Nerd Font Complete Mono.ttf
SourceCodePro/Light-Italic/complete/Sauce Code Pro Light Italic Nerd Font Complete Mono.ttf'
FONTS_CODING=$'HackNerdFontMono-BoldItalic.ttf
HackNerdFontMono-Bold.ttf
HackNerdFontMono-Italic.ttf
HackNerdFontMono-Regular.ttf
FiraCodeNerdFontMono-Bold.ttf
FiraCodeNerdFontMono-Light.ttf
FiraCodeNerdFontMono-Medium.ttf
FiraCodeNerdFontMono-Regular.ttf
FiraCodeNerdFontMono-Retina.ttf
FiraCodeNerdFontMono-SemiBold.ttf
JetBrainsMonoNerdFontMono-BoldItalic.ttf
JetBrainsMonoNerdFontMono-Bold.ttf
JetBrainsMonoNerdFontMono-ExtraBoldItalic.ttf
JetBrainsMonoNerdFontMono-ExtraBold.ttf
JetBrainsMonoNerdFontMono-ExtraLightItalic.ttf
JetBrainsMonoNerdFontMono-ExtraLight.ttf
JetBrainsMonoNerdFontMono-Italic.ttf
JetBrainsMonoNerdFontMono-LightItalic.ttf
JetBrainsMonoNerdFontMono-Light.ttf
JetBrainsMonoNerdFontMono-MediumItalic.ttf
JetBrainsMonoNerdFontMono-Medium.ttf
JetBrainsMonoNerdFontMono-Regular.ttf
JetBrainsMonoNerdFontMono-SemiBoldItalic.ttf
JetBrainsMonoNerdFontMono-SemiBold.ttf
JetBrainsMonoNerdFontMono-ThinItalic.ttf
JetBrainsMonoNerdFontMono-Thin.ttf
MonaspiceNeNerdFontMono-BoldItalic.otf
MonaspiceNeNerdFontMono-Bold.otf
MonaspiceNeNerdFontMono-Italic.otf
MonaspiceNeNerdFontMono-LightItalic.otf
MonaspiceNeNerdFontMono-Light.otf
MonaspiceNeNerdFontMono-Regular.otf'
FONTS_FUTURA=$'Futura-Std-Bold_19042.ttf
Futura-Std-Bold-Oblique_19041.ttf
Futura-Std-Book_19044.ttf
Futura-Std-Book-Oblique_19043.ttf'
FONTS_OVERPASS=$'Overpass-BlackItalic.ttf
Overpass-Black.ttf
Overpass-BoldItalic.ttf
Overpass-Bold.ttf
Overpass-ExtraBoldItalic.ttf
Overpass-ExtraBold.ttf
Overpass-ExtraLightItalic.ttf
Overpass-ExtraLight.ttf
Overpass-Italic.ttf
Overpass-LightItalic.ttf
Overpass-Light.ttf
Overpass-MediumItalic.ttf
Overpass-Medium.ttf
Overpass-Regular.ttf
Overpass-SemiBoldItalic.ttf
Overpass-SemiBold.ttf
Overpass-ThinItalic.ttf
Overpass-Thin.ttf'
FONTS_JETBRAINS=$'JetBrainsMono-BoldItalic.ttf
JetBrainsMono-Bold.ttf
JetBrainsMono-ExtraBoldItalic.ttf
JetBrainsMono-ExtraBold.ttf
JetBrainsMono-Italic.ttf
JetBrainsMono-MediumItalic.ttf
JetBrainsMono-Medium.ttf
JetBrainsMono-Regular.ttf'
FONTS_GO=$'Go-Bold-Italic.ttf
Go-Bold.ttf
Go-Italic.ttf
Go-Medium-Italic.ttf
Go-Medium.ttf
Go-Regular.ttf
Go-Smallcaps-Italic.ttf
Go-Smallcaps.ttf'
FONTS_RUBIK=$'Rubik-BlackItalic.ttf
Rubik-Black.ttf
Rubik-BoldItalic.ttf
Rubik-Bold.ttf
Rubik-Italic.ttf
Rubik-LightItalic.ttf
Rubik-Light.ttf
Rubik-MediumItalic.ttf
Rubik-Medium.ttf
Rubik-Regular.ttf'
# https://github.com/eosrei/emojione-color-font/
# FONTS_VARIOUS=$'EmojiOneColor-SVGinOT.ttf'
FONTS_DELETE=$'Sauce Code Pro Medium Plus Nerd File Types Plus Font Awesome Plus Octicons Plus Pomicons.ttf
Sauce Code Pro Bold Plus Nerd File Types Mono Plus Font Awesome Plus Octicons Plus Pomicons.ttf
Sauce Code Pro Medium Plus Nerd File Types Mono Plus Font Awesome Plus Octicons Plus Pomicons.ttf
Knack Bold Plus Nerd File Types Mono Plus Font Awesome Plus Octicons Plus Pomicons.ttf
Knack Plus Nerd File Types Mono Plus Font Awesome Plus Octicons Plus Pomicons.ttf
Knack BoldOblique Plus Nerd File Types Plus Font Awesome Plus Octicons Plus Pomicons.ttf
Knack RegularOblique Plus Nerd File Types Plus Font Awesome Plus Octicons Plus Pomicons.ttf
Knack Bold Nerd Font Complete Mono.ttf
Knack Regular Nerd Font Complete Mono.ttf
Knack Bold Italic Nerd Font Complete Mono.ttf
Knack Italic Nerd Font Complete Mono.ttf
overpass-bold-italic.otf
overpass-bold.otf
overpass-extrabold-italic.otf
overpass-extrabold.otf
overpass-extralight-italic.otf
overpass-extralight.otf
overpass-heavy-italic.otf
overpass-heavy.otf
overpass-italic.otf
overpass-light-italic.otf
overpass-light.otf
overpass-regular.otf
overpass-semibold-italic.otf
overpass-semibold.otf
overpass-thin-italic.otf
overpass-thin.otf
Fira Code Bold Nerd Font Complete Mono.ttf
Fira Code Regular Nerd Font Complete Mono.ttf
Hack Bold Nerd Font Complete Mono.ttf
Hack Regular Nerd Font Complete Mono.ttf
Hack Bold Italic Nerd Font Complete Mono.ttf
Hack Italic Nerd Font Complete Mono.ttf
JetBrainsMono-Bold-Italic.ttf
JetBrainsMono-ExtraBold-Italic.ttf
JetBrainsMono-Medium-Italic.ttf'
if [ -e ~/.dot_is_server ]; then
# Update from the repo
echo "== Nerd fonts ======"
PARENT_DIR="/stuff/system/fonts"
SOURCE_DIR="/stuff/system/fonts/nerd-fonts/patched-fonts"
DEST_DIR="/stuff/system/sync/fonts/active"
#if [ -d "$PARENT_DIR" ] && [ -d "$SOURCE_DIR" ] && [ -d "$DEST_DIR" ]; then
if [ -d "$PARENT_DIR" ] && [ -d "$DEST_DIR" ]; then
cd "$PARENT_DIR"
# git pull --all
#git clone --depth=1 https://github.com/ryanoasis/nerd-fonts.git
cd "$SOURCE_DIR"
while read -r FONT; do
echo "Copied font: $FONT"
cp -a "$SOURCE_DIR/$FONT" "$DEST_DIR"
done <<< "$FONTS_CODING"
else
echo "$PARENT_DIR, $SOURCE_DIR or $DEST_DIR not found, aborting"
fi
# Update from the repo
echo "== Jetbrains Mono ======"
SOURCE_DIR="/stuff/system/fonts/JetBrainsMono/fonts/ttf"
DEST_DIR="/stuff/system/sync/fonts/active"
if [ -d "$SOURCE_DIR" ] && [ -d "$DEST_DIR" ]; then
cd "$SOURCE_DIR"
git pull --all
while read -r FONT; do
echo "Copied font: $FONT"
cp -a "$SOURCE_DIR/$FONT" "$DEST_DIR"
done <<< "$FONTS_JETBRAINS"
else
echo "$SOURCE_DIR or $DEST_DIR not found, aborting"
fi
# Update from the repo
echo "== Overpass ======"
SOURCE_DIR="/stuff/system/fonts/Overpass/fonts/ttf"
DEST_DIR="/stuff/system/sync/fonts/active"
if [ -d "$SOURCE_DIR" ] && [ -d "$DEST_DIR" ]; then
cd "$SOURCE_DIR"
git pull --all
while read -r FONT; do
echo "Copied font: $FONT"
cp -a "$SOURCE_DIR/$FONT" "$DEST_DIR"
done <<< "$FONTS_OVERPASS"
else
echo "$SOURCE_DIR or $DEST_DIR not found, aborting"
fi
# Update from the repo
echo "== Go ======"
SOURCE_DIR="/stuff/system/fonts/Go/image/font/gofont/ttfs"
DEST_DIR="/stuff/system/sync/fonts/active"
if [ -d "$SOURCE_DIR" ] && [ -d "$DEST_DIR" ]; then
cd "$SOURCE_DIR"
git pull --all
while read -r FONT; do
echo "Copied font: $FONT"
cp -a "$SOURCE_DIR/$FONT" "$DEST_DIR"
done <<< "$FONTS_GO"
else
echo "$SOURCE_DIR or $DEST_DIR not found, aborting"
fi
echo "== DONE ======"
else
# Create symlinks if needed
SOURCE_DIR="$HOME/Downloads/sync/fonts/active"
DEST_DIR="$HOME/.local/share/fonts"
if [ ! -e "$DEST_DIR" ]; then
mkdir -p "$DEST_DIR"
fi
if [ -d "$SOURCE_DIR" ]; then
cd "$DEST_DIR"
while read -r FONT; do
FONT_FILE=$(basename "${SOURCE_DIR}/${FONT}")
install_font "$SOURCE_DIR/$FONT_FILE" "$DEST_DIR/$FONT_FILE"
done <<< "$FONTS_CODING"
while read -r FONT; do
install_font "$SOURCE_DIR/$FONT" "$DEST_DIR/$FONT"
done <<< "$FONTS_JETBRAINS"
while read -r FONT; do
install_font "$SOURCE_DIR/$FONT" "$DEST_DIR/$FONT"
done <<< "$FONTS_FUTURA"
while read -r FONT; do
install_font "$SOURCE_DIR/$FONT" "$DEST_DIR/$FONT"
done <<< "$FONTS_OVERPASS"
while read -r FONT; do
install_font "$SOURCE_DIR/$FONT" "$DEST_DIR/$FONT"
done <<< "$FONTS_GO"
while read -r FONT; do
install_font "$SOURCE_DIR/$FONT" "$DEST_DIR/$FONT"
done <<< "$FONTS_RUBIK"
# while read -r FONT; do
# install_font "$SOURCE_DIR/$FONT" "$DEST_DIR/$FONT"
# done <<< "$FONTS_VARIOUS"
if [ ! -e "${HOME}/.config/fontconfig" ]; then
mkdir -p "${HOME}/.config/fontconfig"
fi
if [ -L "${HOME}/.config/fontconfig/fonts.conf" ]; then
# Remove the emoji-fallback config that causes crashes in Telegram Desktop (symlink)
rm "${HOME}/.config/fontconfig/fonts.conf"
fi
# Delete obsolete fonts
while read -r FONT; do
if [ -L "$DEST_DIR/$FONT" ]; then
echo "Deleting symlink $DEST_DIR/$FONT"
rm "$DEST_DIR/$FONT"
fi
done <<< "$FONTS_DELETE"
# Just to be sure, clear and refresh your font cache and restart Firefox
fc-cache -f -v
echo
echo '/!\ You might want to restart your browser and/or terminals'
else
echo "$SOURCE_DIR not found, aborting"
fi
if [ -d "$HOME/.fonts" ]; then
echo "Mind that you do have a ~/.fonts dir too, which might contain older versions"
fi
fi