Files
Server-scripts/upgrade.sh
T
2026-09-14 12:43:38 +02:00

65 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
home_dir="/home/lucas"
green="\e[32m"
red="\e[31m"
norm="\e[0m"
write_out() {
if [ "${MAIL}" == "true" ]; then
printf "$@\n" >> /tmp/update.txt
else
printf "$@\n"
fi
}
MAIL=false
echo Start Update
date="$(date +"%m%d%H")"
if [ "$1" == "-mail" ]; then
> /tmp/update.txt
exec 3>&1 4>&2 1>"${home_dir}.LOG/log_update_$date.log" 2>&1
MAIL=true
green=""
red=""
norm=""
fi
write_out "Start: $(date)"
CMD=("apt -y update" "apt -y upgrade" "apt -y dist-upgrade" "apt -y autoclean" "apt -y autoremove" "flatpak update -y" "find ${home_dir}/.LOG/ -name log_update_* -mtime +6 -type f -delete")
MSG=("update" "upgrade" "dist-upgrade" "autoclean" "autoremove" "Log File Remove")
for ((i=0;i<${#CMD[@]};i++)); do
if [[ $(echo ${CMD[$i]} | grep pip3) != "" ]] && [[ $(hostname) == "raspberry" ]]; then
continue
fi
printf "${CMD[$i]}\n"
eval ${CMD[$i]}
if [ $? -ne 0 ] ; then
write_out "${MSG[$i]}\t\t\t\t[${red}FAIL${norm}]\n"
else
write_out "${MSG[$i]}\t\t\t\t[${green}OK${norm}]\n"
fi
done
if [[ -f /home/lucas/tools/spotdl_venv/bin/pip3 ]]; then
CMD=("spotdl" "youtube-dl" "yt-dlp")
for ((i=0;i<${#CMD[@]};i++)); do
printf "Package ${CMD[$i]}\n"
if [[ "$(sudo -u lucas /home/lucas/tools/spotdl_venv/bin/pip3 list | grep ${CMD[$i]})" != "" ]]; then
sudo -u lucas /home/lucas/tools/spotdl_venv/bin/pip3 install --upgrade ${CMD[$i]}
fi
if [ $? -ne 0 ] ; then
write_out "${MSG[$i]}\t\t\t\t[${red}FAIL${norm}]\n"
else
write_out "${MSG[$i]}\t\t\t\t[${green}OK${norm}]\n"
fi
done
else
echo No Spotdl venv installed
fi
command -v docker && docker images --format "{{.Repository}}:{{.Tag}}" | xargs -n1 docker pull && sudo systemctl restart docker
if [ "${MAIL}" == "true" ]; then
mail_str="$(cat /tmp/update.txt)"
echo "$mail_str" | mail -s "Automated Servermessage - Upgrade" lucas-f@live.at
fi