#!/bin/bash


for group in $(groups)
do
    if [ "${group}" == "wheel" ] || [ "${group}" == "root" ]; then
        echo "The user ${USER} is a member of the group ${group}"
        break
    else
        echo "The user '${USER}' does not have permission to run this program."
        echo "The user '${USER}' is not a member of the wheel or root group."
        echo ""
        echo -e "Add the user '${USER}' to the wheel group - COPY AND PASTE in new konsole:\n
                 su -c \"usermod -a -G wheel ${USER}\"; qdbus org.kde.LogoutPrompt /LogoutPrompt promptLogout; exit"
        echo ""
        echo "Or otherwise escalate privileges and run the program \"${HOME}/.config/autostart/$(basename ${0}).desktop\" again."
        echo ""
        echo -e "Help: https://wiki.archlinux.org/title/Sudo \nhttps://wiki.archlinux.org/title/Users_and_groups"
        echo ""
        echo "The program path is the ${HOME}/.local/bin/$(basename ${0})"
        echo "The shortcut path is the ${HOME}/.config/autostart/$(basename ${0}).desktop"
        echo ""
        echo "Waiting new konsole windows..."

        sleep 5

        /usr/bin/konsole
        exit
    fi
done


if [[ "$UID" != 0 ]]; then
    echo "USER NOT ROOT"
    sudo "$0"
    exit
else
    echo "USER IS ROOT"
fi

ping -c 1 1.1.1.1 > /dev/null
have_internet="$?"

# sleep 1

cd "/root"

rm  -rf /var/lib/pacman/sync/*
rm -rf /etc/pacman.d/gnupg/*

mkdir -p /root/.gnupg 2>/dev/null
chmod 700 /root/.gnupg

haveged -w 1024
pacman-key --init
pkill haveged

pacman-key --add /usr/share/pacman/keyrings/melawy-linux.gpg
pacman-key --lsign-key BC8B600E8DDA1F4CB77B10D2BA803A261A5EE6B8
pacman-key --lsign-key B175815513971572FE7B1557CEC07AC8FF64DA4B

if [ "$have_internet" -eq 0 ]; then
    pacman-key --keyserver hkps://keys.openpgp.org --recv-keys BC8B600E8DDA1F4CB77B10D2BA803A261A5EE6B8
    pacman-key --keyserver hkps://keyserver.ubuntu.com --recv-keys BC8B600E8DDA1F4CB77B10D2BA803A261A5EE6B8
    pacman-key --lsign-key BC8B600E8DDA1F4CB77B10D2BA803A261A5EE6B8

    pacman-key --keyserver hkps://keys.openpgp.org --recv-keys B175815513971572FE7B1557CEC07AC8FF64DA4B
    pacman-key --keyserver hkps://keyserver.ubuntu.com --recv-keys B175815513971572FE7B1557CEC07AC8FF64DA4B
    pacman-key --lsign-key B175815513971572FE7B1557CEC07AC8FF64DA4B
fi

pacman-key --lsign-key melawy-linux

pacman-key --add /usr/share/pacman/keyrings/manjaro.gpg
pacman-key --lsign-key manjaro
pacman-key --add /usr/share/pacman/keyrings/cachyos.gpg
pacman-key --lsign-key cachyos
pacman-key --add /usr/share/pacman/keyrings/arcolinux.gpg
pacman-key --lsign-key arcolinux
pacman-key --add /usr/share/pacman/keyrings/chaotic.gpg
pacman-key --lsign-key chaotic
pacman-key --add /usr/share/pacman/keyrings/endeavouros.gpg
pacman-key --lsign-key endeavouros

pacman-key --populate

echo "
keyserver hkp://keyserver.ubuntu.com:80" | sudo tee --append /etc/pacman.d/gnupg/gpg.conf

pacman-key --updatedb

if [ "$have_internet" -eq 0 ]; then
    pacman -Sy
fi

title="Successed!"
msg="$(date '+%Y.%m.%d %H:%M:%S')"

users=$(/usr/bin/users | sed 's| |\n|g' | sort | uniq)
for user in $users
do
    userid=$(/usr/bin/id -u "$user")

    cmd=(
        DISPLAY=:0
        DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$userid"/bus
        /usr/bin/notify-send
        --icon=info
        --urgency=low
        -t 5000
        -a "'Keys sign'"
        "'$title'"
        "'$msg'"
    )

    /usr/bin/su "$user" -c "${cmd[*]}"

   if [ "$user" != "liveuser" ]; then
       rm /home/"$user"/.config/autostart/key-sign.sh.desktop
#        rm /home/"$user"/.local/bin/key-sign.sh
   fi
done

echo "This window will close in 5 seconds"
sleep 5