#!/usr/bin/env bash red="\033[1;31m" greenbold="\033[1;32m" green="\033[0;32m" yellow="\033[0;33m" bold="\033[1m" #bold_under="\033[1;4m" italic="\033[3m" underline="\033[4m" reset="\033[0m" dotenv () { set -a # shellcheck disable=SC1091 [ -f "$HOME/.env" ] && . "$HOME/.env" || echo -e "${red}\nNo .env file found ! Archive won't be encrypted !${reset}" set +a } dotenv dir_docker="/volume1/docker" dir_stacks="/volume1/docker/dockge/stacks" dir_backup="/volume1/docker/_backup" [ ! -d "$dir_backup" ] && mkdir "$dir_backup" stacks=$(cd "$dir_stacks" && fd -g docker-compose.yml) nb=0 while IFS= read -r line; do app=$(echo "${line}" | awk -F"/" '{print $1}') folder="$dir_backup/$app" [ ! -d "$folder" ] && mkdir "$folder" cp "$line" "$folder" ((nb++)) done <<< "$stacks" echo -e "$nb 'docker-compose.yml' files founds in DockGe !" env=$(cd "$dir_stacks" && fd -H -g .env) nb=0 while IFS= read -r line; do app=$(echo "${line}" | awk -F"/" '{print $1}') folder="$dir_backup/$app" [ -d "$folder" ] && cp "$line" "$folder" ((nb++)) done <<< "$env" echo -e "$nb '.env' files founds in DockGe !" echo -e "Archivage du dossier _backup..." if ! command -v gpg &> /dev/null; then echo -e "${bold}gpg${reset} could not be found !\n" echo -e "Archive won't be encrypted !\n" echo -e "" tar -zcvf "$dir_docker/backup_Docker.tar.gz" "$dir_backup" >/dev/null 2>&1 else rm "$dir_docker/backup_Docker.tar".gpg && tar -cvzf - "$dir_backup" | gpg --encrypt --recipient $recipient -o "$dir_docker/backup_Docker.tar".gpg fi