You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
dotfiles/scripts/helper/check_mail.sh

82 lines
2.2 KiB

MAIL_FOLDER=/var/mail
if groups "$USER" | grep -o "sudo" >/dev/null 2>/dev/null; then
USE_SUPER="sudo"
elif groups "$USER" | grep -o "doas" >/dev/null 2>/dev/null; then
USE_SUPER="doas"
elif groups "$USER" | grep -o "wheel" >/dev/null 2>/dev/null; then
USE_SUPER="sudo"
elif groups "$USER" | grep -o "admin" >/dev/null 2>/dev/null; then
USE_SUPER="sudo"
elif [ "$EUID" -eq 0 ]; then
USE_SUPER="\$"
else
USE_SUPER=""
fi
del_mail() {
if [ ! -f "$MAIL_FOLDER/$1" ]; then
return
fi
if [ $(sudo cat "$MAIL_FOLDER/$1" | wc -l) -eq 0 ]; then
sudo rm "$MAIL_FOLDER/$1"
return
fi
read -r -p "Would you like to save your mail or delete it [save or delete] : " keep
if [ "$keep" == "delete" ] || [ "$keep" == "del" ]; then
echo "Attempting to erase mail for user $1."
sudo rm "$MAIL_FOLDER/$1"
fi
}
read_mail() {
if [ ! -f "$MAIL_FOLDER/$1" ]; then
return
fi
if [ $EUID -ne 0 ] && [ -z "$USE_SUPER" ]; then
echo "Have your Root user check the mailbox for ${MAIL_FOLDER}/$1 has Mail in it!"
return
fi
echo "Checking if $1 has any mail...."
if [ $(sudo cat "$MAIL_FOLDER/$1" | wc -l) -eq 0 ]; then
echo "No new mail"
sudo rm "$MAIL_FOLDER/$1"
return
fi
echo "$1 HAS Mail!!!"
if [ -x /usr/bin/mutt ]; then
if [ "$1" == "root" ]; then
sudo mutt -f "$MAIL_FOLDER/$1"
else
mutt -f "$MAIL_FOLDER/$1"
fi
elif [ -x /usr/bin/mail ]; then
read -r -p "Check mail via [ mail, less, nano, tail, read, or cat ] : " check
case $check in
mail) sudo mail -u "$1";;
less) sudo less "$MAIL_FOLDER/$1";;
nano) sudo nano "$MAIL_FOLDER/$1";;
tail) sudo tail -n 50 "$MAIL_FOLDER/$1";;
*) sudo cat "$MAIL_FOLDER/$1";;
esac
else
read -r -p "Check mail via [ less, nano, tail, read, or cat ] : " check
case $check in
less) sudo less "$MAIL_FOLDER/$1";;
nano) sudo nano "$MAIL_FOLDER/$1";;
tail) sudo tail -n 50 "$MAIL_FOLDER/$1";;
*) sudo cat "$MAIL_FOLDER/$1";;
esac
fi
del_mail "$1"
}
# Check for Root Mail Alerts, to keep up to date on Security Issues
read_mail root
if [ "$USER" != "root" ]; then
read_mail "$USER"
fi