The Meowgorithm Dotfiles, Collectors’ Edition
#!/usr/bin/env bash
set -euo pipefail
is_fedora=false
if [[ -f /etc/os-release ]]; then
source /etc/os-release
if [[ "$ID" == "fedora" ]]; then
is_fedora=true
fi
fi
brewLocation="charmbracelet/tap/crush"
npmLocation="@charmland/crush"
go="go install -v github.com/charmbracelet/crush"
numtide="nix run github:numtide/nix-ai-tools#crush"
nixunstable="nix-shell -p crush"
brew="brew install $brewLocation"
npm="npm install -g $npmLocation"
fedora_setup_repo() {
if ! grep -q '\[charm\]' /etc/yum.repos.d/charm.repo 2>/dev/null; then
echo "Adding Charm repo..."
echo '[charm]
name=Charm
baseurl=https://repo.charm.sh/yum/
enabled=1
gpgcheck=1
gpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo >/dev/null
sudo rpm --import https://repo.charm.sh/yum/gpg.key
fi
}
fedora="fedora_setup_repo; if rpm -q crush >/dev/null 2>&1; then sudo dnf upgrade -y crush; else sudo dnf install -y crush; fi"
opts="$(
cat <<EOF
Build from source (release):$go@latest
Build from source (main):$go@main
Nix (numtide):$numtide