#!/usr/bin/env fish

function log -a message
    echo \n"--- $message ---"\n
end

read -P "OS? (arch/debian/fedora/mac) " -l distro

set -l base_pkgs \
    fish \
    git \
    neovim \
    tmux \
    rsync \
    curl \
    less \
    fzf \
    mosh \
    lsd \
    ripgrep \
    bat \
    tree-sitter-cli \
    nodejs \
    zoxide \
    git-delta

set -l mac_pkgs \
    $base_pkgs \
    fd \
    yazi

set -l arch_pkgs \
    $base_pkgs \
    fd \
    yazi \
    ttf-nerd-fonts-symbols \
    ttf-nerd-fonts-symbols-common \
    ttf-nerd-fonts-symbols-mono \
    zsh-autosuggestions \
    zsh-history-substring-search \
    zsh-syntax-highlighting

set -l debian_pkgs \
    $base_pkgs \
    fd-find

set -l fedora_pkgs \
    $base_pkgs \
    fd-find

switch $distro
    case mac
        log 'Installing packages with Homebrew'
        brew install $mac_pkgs
    case arch
        log 'Installing yay'

        sudo pacman --sync --refresh --sysupgrade --noconfirm
        and sudo pacman --sync --needed --noconfirm base-devel go
        or return $status

        test -d yay
        or git clone https://aur.archlinux.org/yay.git
        and cd yay
        and makepkg --syncdeps --install --noconfirm
        and cd ..
        or return $status

        log 'Installing packages with yay'

        yay --sync --noconfirm $arch_pkgs
    case debian
        log 'Installing packages with APT'
        sudo apt-get --quiet --yes update
        and sudo apt-get --quiet --yes upgrade
        and sudo apt-get --quiet --yes install $debian_pkgs
    case fedora
        log 'Installing packages with DNF'
        sudo dnf upgrade --assumeyes
        and sudo dnf --assumeyes install $fedora_pkgs
end
