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

165 lines
5.7 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=$'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
FiraCode/BoldItalic/complete/Fira Code Bold Italic Nerd Font Complete Mono.ttf
FiraCode/Italic/complete/Fira Code Italic Nerd Font Complete Mono.ttf'
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-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'
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'
# 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'
if [ -e ~/.dot_is_server ]; then
# Update from the repo
echo "== Nerd fonts ======"
SOURCE_DIR="/stuff/system/fonts/nerd-fonts/patched-fonts"
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_CODING"
else
echo "$SOURCE_DIR or $DEST_DIR not found, aborting"
fi
# Update from the repo
echo "== Overpass ======"
SOURCE_DIR="/stuff/system/fonts/Overpass/desktop-fonts/overpass"
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_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_VARIOUS"
if [ ! -e "${HOME}/.config/fontconfig" ]; then
mkdir -p "${HOME}/.config/fontconfig"
fi
if [ ! -e "${HOME}/.config/fontconfig/fonts.conf" ]; then
ln -s "${SOURCE_DIR}/fonts.conf" "${HOME}/.config/fontconfig/"
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 'You might want to restart your browser'
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