#!/bin/bash currUser="$USER" if [ ! -d "${HOME}/.config/systemd/user" ]; then mkdir -p "${HOME}/.config/systemd/user" fi if [ ! -f /usr/bin/zenity ]; then if [ -f /usr/bin/apt ]; then sudo apt install zenity fi if [ -f /usr/bin/pacman ]; then sudo pacman -S zenity fi fi HANDLE=$(zenity --entry --width=400 --title "Epicyon Desktop Notifications" --text "Fediverse handle (name@domain): ") if [ ! "$HANDLE" ]; then zenity --warning --width=400 --text "No fediverse handle was given" exit 1 fi if [[ "$HANDLE" != *'@'* ]]; then zenity --warning --width=400 --text "Fediverse handle must be in the form username@domain" exit 2 fi PASSWORD=$(zenity --width=400 --password --title "Epicyon Desktop Notifications") if [ ! "$PASSWORD" ]; then zenity --warning --width=400 --text "No password was given" exit 3 fi if [ ! -f /usr/bin/git ]; then if [ -f /usr/bin/apt ]; then sudo apt install git fi if [ -f /usr/bin/pacman ]; then sudo pacman -S git fi fi if [ ! -f /usr/bin/python3 ]; then if [ -f /usr/bin/apt ]; then sudo apt install python3 fi if [ -f /usr/bin/pacman ]; then sudo pacman -S python fi fi if [ ! -d ${HOME}/.epicyon ]; then git clone https://gitlab.com/bashrc2/epicyon ${HOME}/.epicyon else cd ${HOME}/.epicyon || exit 1 git pull fi if [ ! -d ${HOME}/.epicyon ]; then zenity --warning --width=400 --text "Unable to clone Epicyon repo" exit 4 fi chown -R "${currUser}":"${currUser}" ${HOME}/.epicyon notificationType= if [ -f /usr/bin/notify-send ]; then notificationType='notify-send' else if [ -f /usr/bin/zenity ]; then notificationType='zenity' fi fi if [[ ! "$notificationType" ]]; then zenity --warning --width=400 --text "No desktop notification command was found." exit 5 fi { echo '[Unit]'; echo 'Description=Epicyon Desktop Notifications'; echo ''; echo '[Service]'; echo "WorkingDirectory=${HOME}/.epicyon"; echo "ExecStart=/usr/bin/python3 epicyon.py --notifyType $notificationType --notify $HANDLE --password \"$PASSWORD\""; echo 'Type=oneshot'; echo 'RemainAfterExit=yes'; echo ''; echo '[Install]'; echo 'WantedBy=default.target'; } > "${HOME}/.config/systemd/user/epicyon-notifications.service" systemctl --user enable epicyon-notifications.service systemctl --user daemon-reload systemctl --user restart epicyon-notifications.service & zenity --info --width=400 --text "Epicyon notifications are now enabled"