#!/bin/bash
# Copyright: Daniel @ Hotwired.technology
# Backup NGINX config

echo_err() {
    printf '\x1b[31m%s\x1b[0m\n' "$*" >&2
 }

echo_info() {
    printf '\x1b[32m%s\x1b[0m\n' "$*" >&2
 }

# Create readonly constant BackupDir
declare -r BackupDir="${HOME}/backups/nginx"

# Check the BackupDir exists
if [[ ! -d "${BackupDir}" ]]; then
    if ! mkdir -p "${BackupDir}"; then 
        echo_err "Failed to create the backup directory: ${BackupDir}"
        exit 1
    fi
fi

# Create the backup directory 
Datetime="$(date -Is)"
readonly Datetime
declare -r TargetDir="${BackupDir}/${Datetime}"
if ! mkdir "${TargetDir}"; then
    echo_err "Failed to create the backup directory ${TargetDir}"
    exit 1
fi

# Perform the backup
if ! cp --archive /etc/nginx/ "${TargetDir}"; then
    echo_err "Failed to backup data"
    exit 1
fi

echo_info "Backed up to: ${TargetDir}"
exit 0
