From 1f6a0dd85c69649ec0d1cd176adec6103563d1b0 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 13 Mar 2021 15:15:32 +0000 Subject: [PATCH] Script for installing notification daemon --- install-desktop-notifications | 88 +++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100755 install-desktop-notifications diff --git a/install-desktop-notifications b/install-desktop-notifications new file mode 100755 index 000000000..d1666d2c3 --- /dev/null +++ b/install-desktop-notifications @@ -0,0 +1,88 @@ +#!/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 + exit 1 +fi +if [[ "$HANDLE" != *'@'* ]]; then + exit 2 +fi +PASSWORD=$(zenity --width=400 --password --title "Epicyon Desktop Notifications") +if [ ! "$PASSWORD" ]; then + 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 + echo '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 + echo 'No desktop notification command was found. Try installing zenity.' + 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=multi-user.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"