bash -c "$(curl -fsSL https://opengist.rmrf.online/weehong/2de15ba0106a475fa41215159203a63b/raw/HEAD/install_font.sh)"
install_font.sh
· 1.6 KiB · Bash
Surowy
#!/bin/bash
# Exit immediately if a command exits with a non-zero status
set -e
FONT_NAME="UbuntuSans"
FONT_ZIP="${FONT_NAME}.zip"
FONT_DIR="$HOME/.local/share/fonts/NerdFonts/${FONT_NAME}"
TMP_DIR=$(mktemp -d)
echo "Searching for the latest release of $FONT_NAME Nerd Font..."
# Use GitHub API to find the latest release download URL for UbuntuSans.zip
DOWNLOAD_URL=$(curl -s https://api.github.com/repos/ryanoasis/nerd-fonts/releases/latest \
| grep "browser_download_url.*${FONT_ZIP}" \
| cut -d '"' -f 4)
if [ -z "$DOWNLOAD_URL" ]; then
echo "Error: Could not find the download URL for $FONT_NAME. Check your internet connection or GitHub API limits."
rm -rf "$TMP_DIR"
exit 1
fi
echo "Latest version found!"
echo "Downloading from: $DOWNLOAD_URL"
# Download the zip file to the temporary directory
curl -L -q "$DOWNLOAD_URL" -o "$TMP_DIR/$FONT_ZIP"
echo "Extracting fonts..."
# Ensure unzip is installed (will fail gracefully if not)
if ! command -v unzip &> /dev/null; then
echo "Error: 'unzip' is not installed. Please install it using 'sudo apt install unzip' and try again."
rm -rf "$TMP_DIR"
exit 1
fi
unzip -q -o "$TMP_DIR/$FONT_ZIP" -d "$TMP_DIR/extracted"
echo "Installing fonts to $FONT_DIR..."
# Create the font directory if it doesn't exist
mkdir -p "$FONT_DIR"
# Move only the TrueType (.ttf) or OpenType (.otf) files to the fonts directory
find "$TMP_DIR/extracted" -name '*.[ot]tf' -type f -exec cp {} "$FONT_DIR/" \;
echo "Updating the system font cache..."
fc-cache -f "$FONT_DIR"
echo "Cleaning up temporary files..."
rm -rf "$TMP_DIR"
echo "Done! $FONT_NAME Nerd Font has been successfully installed."
| 1 | #!/bin/bash |
| 2 | |
| 3 | # Exit immediately if a command exits with a non-zero status |
| 4 | set -e |
| 5 | |
| 6 | FONT_NAME="UbuntuSans" |
| 7 | FONT_ZIP="${FONT_NAME}.zip" |
| 8 | FONT_DIR="$HOME/.local/share/fonts/NerdFonts/${FONT_NAME}" |
| 9 | TMP_DIR=$(mktemp -d) |
| 10 | |
| 11 | echo "Searching for the latest release of $FONT_NAME Nerd Font..." |
| 12 | |
| 13 | # Use GitHub API to find the latest release download URL for UbuntuSans.zip |
| 14 | DOWNLOAD_URL=$(curl -s https://api.github.com/repos/ryanoasis/nerd-fonts/releases/latest \ |
| 15 | | grep "browser_download_url.*${FONT_ZIP}" \ |
| 16 | | cut -d '"' -f 4) |
| 17 | |
| 18 | if [ -z "$DOWNLOAD_URL" ]; then |
| 19 | echo "Error: Could not find the download URL for $FONT_NAME. Check your internet connection or GitHub API limits." |
| 20 | rm -rf "$TMP_DIR" |
| 21 | exit 1 |
| 22 | fi |
| 23 | |
| 24 | echo "Latest version found!" |
| 25 | echo "Downloading from: $DOWNLOAD_URL" |
| 26 | |
| 27 | # Download the zip file to the temporary directory |
| 28 | curl -L -q "$DOWNLOAD_URL" -o "$TMP_DIR/$FONT_ZIP" |
| 29 | |
| 30 | echo "Extracting fonts..." |
| 31 | # Ensure unzip is installed (will fail gracefully if not) |
| 32 | if ! command -v unzip &> /dev/null; then |
| 33 | echo "Error: 'unzip' is not installed. Please install it using 'sudo apt install unzip' and try again." |
| 34 | rm -rf "$TMP_DIR" |
| 35 | exit 1 |
| 36 | fi |
| 37 | |
| 38 | unzip -q -o "$TMP_DIR/$FONT_ZIP" -d "$TMP_DIR/extracted" |
| 39 | |
| 40 | echo "Installing fonts to $FONT_DIR..." |
| 41 | # Create the font directory if it doesn't exist |
| 42 | mkdir -p "$FONT_DIR" |
| 43 | |
| 44 | # Move only the TrueType (.ttf) or OpenType (.otf) files to the fonts directory |
| 45 | find "$TMP_DIR/extracted" -name '*.[ot]tf' -type f -exec cp {} "$FONT_DIR/" \; |
| 46 | |
| 47 | echo "Updating the system font cache..." |
| 48 | fc-cache -f "$FONT_DIR" |
| 49 | |
| 50 | echo "Cleaning up temporary files..." |
| 51 | rm -rf "$TMP_DIR" |
| 52 | |
| 53 | echo "Done! $FONT_NAME Nerd Font has been successfully installed." |