#!/bin/bash

# Function to determine package manager
get_package_manager() {
#    for manager in yay aurutils pikaur pacaur pakku; do
#        if command -v "$manager" &> /dev/null; then
#            echo "$manager"
#            return
#        fi
#    done
    echo "pacman"
}

PACKAGE_MANAGER=$(get_package_manager)

case "$1" in
    mirror)
        if command -v reflector &> /dev/null; then
            echo "Updating mirrorlist using reflector..."
            sudo reflector --latest 20 --sort rate --save /etc/pacman.d/mirrorlist
            echo "Mirrorlist updated."
        fi
        sudo pacman -Sy --noconfirm archlinux-keyring
        ;;
    update)
        if command -v reflector &> /dev/null; then
            echo "Updating mirrorlist using reflector..."
            sudo reflector --latest 20 --sort rate --save /etc/pacman.d/mirrorlist
            echo "Mirrorlist updated."
        fi
        sudo pacman -Sy --noconfirm archlinux-keyring

        echo "Updating pacman keyring..."
        sudo pacman-key --init
        sudo pacman-key --populate archlinux
        echo "Pacman keyring update completed."

        echo "Updating the system..."
        sudo "$PACKAGE_MANAGER" -Syu
        ;;

    install)
        if [ -z "$2" ]; then
            echo "Please provide package names to install."
            exit 1
        fi
        echo "Installing packages: ${@:2}"
        sudo "$PACKAGE_MANAGER" -Syu "${@:2}"
        ;;

    remove)
        if [ -z "$2" ]; then
            echo "Please provide package names to remove."
            exit 1
        fi
        echo "Removing packages: ${@:2}"
        sudo "$PACKAGE_MANAGER" -Rns "${@:2}"
        ;;

    clean)
        echo "Clearing package cache..."
        sudo "$PACKAGE_MANAGER" -Scc
        ;;

    *)
        echo "-----------------------------------------------------------"
        echo "OnixOS Package Manager (with $PACKAGE_MANAGER) "
        echo "-----------------------------------------------------------"
        echo "Usage: $0 <option>"
        echo "-----------------------------------------------------------"
        echo "- update             | Automatic System Update"
        echo "- install <packages> | Install <packages> from repository"
        echo "- remove <packages>  | Remove <packages> from repository"
        echo "- clean              | Clean package cache"
        echo "- mirror             | Auto update mirrors"
        echo "-----------------------------------------------------------"
        exit 1
        ;;
esac
