#!/usr/bin/env bash
set -euo pipefail

meow() {
  echo "meow meow :: $1"
}

meow "mreow meow meow meow package installer starting"
meow "arch will become meow"

# Ensure sudo works
if ! sudo -v; then
  echo "sudo required. no sudo no meow."
  exit 1
fi

# Keep sudo alive
while true; do sudo -n true; sleep 60; done 2>/dev/null &
SUDO_PID=$!
trap 'kill "$SUDO_PID"' EXIT

meow "updating system meow"
sudo pacman -Syu --noconfirm

# === Enable multilib ===
meow "checking multilib meow"

if grep -q "^#\[multilib\]" /etc/pacman.conf; then
  meow "uncommenting multilib meow meow"
  sudo sed -i \
    -e 's/^#\[multilib\]/[multilib]/' \
    -e 's/^#Include = \/etc\/pacman.d\/mirrorlist/Include = \/etc\/pacman.d\/mirrorlist/' \
    /etc/pacman.conf
else
  meow "multilib already meow"
fi

meow "resyncing repos meow"
sudo pacman -Syy --noconfirm

# === Main Arch packages via pacman ===
PACMAN_PACKAGES=(
  python
  git
  base-devel
  nodejs
  npm
  firefox
  discord
  vlc
  kdenlive
  kdeconnect
  obsidian
  btop
  fastfetch
  hyfetch
  code
  steam
  qbittorrent
  gimp
  gwenview
  obs-studio
)

meow "installing pacman packages meow meow"
sudo pacman -S --needed --noconfirm "${PACMAN_PACKAGES[@]}"

# === Install yay (AUR helper) ===
if ! command -v yay &>/dev/null; then
  meow "installing yay meow"
  rm -rf /tmp/yay
  git clone https://aur.archlinux.org/yay.git /tmp/yay
  (
    cd /tmp/yay
    makepkg -si --noconfirm
  )
else
  meow "yay already exists meow"
fi

# === Install AUR packages via yay ===
AUR_PACKAGES=(
  spotify-launcher
  localsend-bin
  fjordlauncher-bin
  lmstudio
)

meow "installing aur packages meow meow"
yay -S --needed --noconfirm "${AUR_PACKAGES[@]}"

meow "setup complete meow"
meow "system is now certified meow"
