#!/usr/bin/env bash function command_exists() { if ! command -v "$1" >/dev/null 2>&1 then echo "<$1> could not be found" return 1 else return 0 fi } function command_needed() { if ! command_exists "$1" ; then echo "$1 is a needed dependency" fi } function font_exists() { if ! fc-list | grep "$1" >/dev/null 2>&1 then echo "please install font $1" return 1 else return 0 fi } function install_apple_emojis() { local download_url=$(curl -s https://api.github.com/repos/samuelngs/apple-emoji-linux/releases/latest | jq --raw-output '.assets[0].browser_download_url') mkdir -pv ~/.local/share/fonts if [ -n "$download_url" ]; then curl -L -o ~/.local/share/fonts/AppleColorEmoji.ttf "$download_url" else echo "error: could not find download url for apple emojis >.<" fi } function install_bat_theme() { mkdir -pv ~/.config/bat/themes/ curl -L -o ~/.config/bat/themes/Catppuccin\ Mocha.tmTheme 'https://raw.githubusercontent.com/catppuccin/bat/main/themes/Catppuccin Mocha.tmTheme' } command_needed stow command_needed fc-list command_needed fc-cache command_needed curl command_needed jq command_needed wl-copy stow xdg-user-dirs install_apple_emojis font_exists "Berkeley Mono" font_exists "Apple Color Emoji" font_exists "Noto Color Emoji" stow fontconfig fc-cache -f -v command_exists ghostty stow ghostty command_needed bat stow bat install_bat_theme bat cache --clear bat cache --build stow scripts