backup-services/lib/functions.sh

68 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
send_discord_notification() {
local message=$1
local color=$2
# Check if we should send discord notifications
if [ -n "$DISCORD_WEB_HOOK" ]; then
curl \
-H "Content-Type: application/json" \
-d "{ \"content\":\"\", \"embeds\":[{ \"title\":\"Vaultwarden Backup\", \"description\":\"${message}\", \"color\":${color}} ]}" \
$DISCORD_WEB_HOOK
fi
}
check_required_programs() {
local requirements_file=$1
local missing=0
local optional_missing=0
while IFS= read -r line || [[ -n "$line" ]]; do
program=${line#\*}
is_optional=false
if [[ "$line" == \** ]]; then
is_optional=true
fi
if ! command -v "$program" &> /dev/null; then
if [ "$is_optional" = true ]; then
echo -e "${YELLOW}Warning: Optional program '$program' is not installed.${NC}" >&2
optional_missing=1
else
echo -e "${RED}Error: Required program '$program' is not installed.${NC}" >&2
missing=1
fi
fi
done < "$requirements_file"
if [ $missing -ne 0 ]; then
local ERR_MSG="One or more required programs are missing."
send_discord_notification "$ERR_MSG" "16711680"
echo -e "${RED}$ERR_MSG${NC}" >&2
exit 1
elif [ $optional_missing -ne 0 ]; then
local WARN_MSG="One or more optional programs are missing."
send_discord_notification "$WARN_MSG" "16776960" # Yellow color code
echo -e "${YELLOW}$WARN_MSG${NC}" >&2
fi
}
# Logging
success() {
echo -e "${GREEN}Success: $1${NC}"
}
log() {
echo -e "${NC}$1${NC}"
}
warn() {
echo -e "${YELLOW}WARN: $1${NC}"
}
error() {
echo -e "${RED}ERROR: $1${NC}" >&2
}