From d0ced66ec601b2b05df945dcad6701fee6d695b8 Mon Sep 17 00:00:00 2001 From: Hans Goor Date: Sun, 1 Sep 2024 21:05:44 +0200 Subject: [PATCH] Add font installer. --- install.sh | 7 +------ modules/font/install.sh | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 6 deletions(-) create mode 100755 modules/font/install.sh diff --git a/install.sh b/install.sh index 0ceab59..fe6fb04 100755 --- a/install.sh +++ b/install.sh @@ -84,11 +84,6 @@ else stower_name="$(basename -- "${stower}")" STOWERS+=("${stower_name}") done - - for module in "${MODULES_DIR}"/*/; do - module_name="$(basename -- "${module}")" - MODULES+=("$module") - done fi for stower in "${STOWERS[@]}"; do @@ -99,4 +94,4 @@ for module in "${MODULES[@]}"; do install_module "${module}" || true done -echo "[!] Installed everything!" +echo "[+] Installed everything!" diff --git a/modules/font/install.sh b/modules/font/install.sh new file mode 100755 index 0000000..2a17573 --- /dev/null +++ b/modules/font/install.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +set -euo pipefail + +get_latest_nerd_font_release() { + basename "$(curl -Ls -o /dev/null -w "%{url_effective}" https://github.com/ryanoasis/nerd-fonts/releases/latest)" +} + +install_font() { + if [[ "$#" -lt 1 ]]; then + echo "[!] No font file given to download!" >&2 + return 1 + fi + + local latest_release font_name + font_name="$1" + latest_release="$(get_latest_nerd_font_release)" + tmpdir="$(mktemp -d)" + + curl -Lo "${tmpdir}/${font_name}" "https://github.com/ryanoasis/nerd-fonts/releases/download/${latest_release}/${font_name}" + mkdir "${tmpdir}/font_files" + tar -C "${tmpdir}/font_files" -xJf "${tmpdir}/${font_name}" + + mkdir -p "${HOME}/.local/share/fonts" + find "${tmpdir}/font_files" -type f \( -iname '*.otf' -o -iname '*.ttf' \) -exec mv {} "${HOME}/.local/share/fonts/" \; + + rm -rf "${tmpdir}" +} + +for font in "FiraCode.tar.xz" "Hack.tar.xz" "FiraMono.tar.xz"; do + echo "[+] Installing ${font}..." + install_font "${font}" +done + +echo "[+] Reloading font cache..." +fc-cache -f +