mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/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"
 |