#!/bin/env fish
begin
    set -l dir (status dirname)

    function initialize -V dir
        source "$dir/../../Common/Scripts/wait-network.fish"
        waitNetwork
        or exit

        sudo systemctl enable --now nix-daemon
        source "$dir/../Scripts/software.fish"
        source "$dir/../Software/base-devel/main.fish"
        source "$dir/../Software/pacman/main.fish"
        source "$dir/../Software/yay/main.fish"

        yayinst \
            pacman-contrib \
            powershell-bin
    end

    if not type -q installSoftware
        function installSoftware -V dir
            source "$dir/../../Common/Scripts/config.fish"
            source "$dir/../Scripts/software.fish"

            if collectionActive essential
                yayinst \
                    mkinitcpio-firmware \
                    neofetch \
                    bash-completion \
                    wget \
                    oh-my-posh-bin \
                    screen \
                    tmux \
                    htop \
                    lsof \
                    zsh \
                    fish \
                    pkgfile \
                    sl \
                    rar

                sudo pkgfile --update
                source "$dir/../Software/openssh/main.fish"
                source "$dir/../Software/vim/main.fish"
                source "$dir/../Software/git/main.fish"
                source "$dir/../Software/zoxide/main.fish"

                # GRUB Shenanigans - if that's not an essential I don't know what is!
                source "$dir/../Software/minegrub-theme/main.fish";
            end

            if collectionActive common
                yayinst \
                    tldr \
                    btop \
                    nvtop \
                    numbat-bin \
                    terminal-parrot

                source "$dir/../Software/aliae/main.fish"
            end

            if collectionActive desktopExperience
                yayinst \
                    maliit-keyboard \
                    dconf-editor \
                    flatpak (
                        # Fixes: https://www.reddit.com/r/flatpak/comments/168tav2/how_to_fix_blurry_flatpaks_on_high_resolution/
                    ) xdg-desktop-portal-gtk

                source "$dir/../Software/KDE/main.fish"
                source "$dir/../Software/sddm/main.fish"

                # Fonts
                yayinst \
                    ttf-cascadia-code-nerd \
                    ttf-ms-win11-auto \
                    otf-cascadia-code \
                    ttf-droid
            end

            if collectionActive server
            else
                # Energy Saving
                yayinst power-profiles-daemon
                sudo systemctl enable --now power-profiles-daemon

                # Networking
                yayinst \
                    networkmanager-openvpn \
                    networkmanager-openconnect
            end
        end
    end

    source "$dir/../../Common/OS/install.fish"
end