#!/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