79 lines
1.8 KiB
Bash
Executable file
79 lines
1.8 KiB
Bash
Executable file
#!/bin/bash
|
|
# ~/.local/bin/font-manager
|
|
# This script extracts font archives and rebuilds font cache
|
|
|
|
FONT_DIR="$HOME/.local/share/fonts"
|
|
ARCHIVE_DIR="$FONT_DIR/archives"
|
|
ACTIVE_DIR="$FONT_DIR/active"
|
|
|
|
# Function to extract a specific font archive
|
|
extract_font() {
|
|
local archive="$1"
|
|
if [ -f "$ARCHIVE_DIR/$archive.tar.gz" ]; then
|
|
echo "Extracting $archive fonts..."
|
|
tar -xzf "$ARCHIVE_DIR/$archive.tar.gz" -C "$ACTIVE_DIR"
|
|
fc-cache -f
|
|
echo "Done! $archive fonts are now active."
|
|
else
|
|
echo "Error: Font archive $archive.tar.gz not found."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Function to list available font archives
|
|
list_fonts() {
|
|
echo "Available font archives:"
|
|
ls -1 "$ARCHIVE_DIR" | sed 's/\.tar\.gz$//'
|
|
}
|
|
|
|
# Function to rebuild font cache
|
|
rebuild_cache() {
|
|
echo "Rebuilding font cache..."
|
|
fc-cache -f
|
|
echo "Done!"
|
|
}
|
|
|
|
# Function to extract all fonts
|
|
extract_all() {
|
|
echo "Extracting all font archives..."
|
|
for archive in "$ARCHIVE_DIR"/*.tar.gz; do
|
|
tar -xzf "$archive" -C "$ACTIVE_DIR"
|
|
done
|
|
fc-cache -f
|
|
echo "Done! All fonts are now active."
|
|
}
|
|
|
|
# Function to clean active fonts directory
|
|
clean_fonts() {
|
|
echo "Cleaning active fonts directory..."
|
|
find "$ACTIVE_DIR" -type f -name "*.ttf" -o -name "*.otf" | xargs rm -f
|
|
echo "Done! Active fonts directory is now clean."
|
|
}
|
|
|
|
# Main script logic
|
|
case "$1" in
|
|
"extract")
|
|
extract_font "$2"
|
|
;;
|
|
"list")
|
|
list_fonts
|
|
;;
|
|
"rebuild")
|
|
rebuild_cache
|
|
;;
|
|
"all")
|
|
extract_all
|
|
;;
|
|
"clean")
|
|
clean_fonts
|
|
;;
|
|
*)
|
|
echo "Usage: font-manager [command] [options]"
|
|
echo "Commands:"
|
|
echo " extract [name] Extract specific font archive"
|
|
echo " list List available font archives"
|
|
echo " rebuild Rebuild font cache"
|
|
echo " all Extract all font archives"
|
|
echo " clean Remove all active fonts"
|
|
;;
|
|
esac
|