#!/bin/bash
##################
# backupallthethings collection
##################
# Redis backup approach is simply to copy the files (when on a single server)
##################

SELF=$(basename -s .sh $0)
SERVICE=${SELF#backup-}

# Data available from ENV
DEST=$BATT_DEST

# 
CONF_FOLDER=/opt/batt/conf
CONF_FILE=$CONF_FOLDER/$SELF.conf

# Load main backup config file
if [ ! -e "$CONF_FOLDER/backup.conf" ]; then
    echo "Missing main backup config file" >&2
    exit 1
else
    . "$CONF_FOLDER/backup.conf"
fi

# Load script specific config file
if [ ! -e "$CONF_FILE" ]; then
    echo "Missing $SELF backup config file" >&2
    exit 1
else
    . "$CONF_FILE"
fi

# Prepare destination folder
DEST_FOLDER=$DEST/$SERVICE
mkdir -p $DEST_FOLDER

# Redis simply require to copy the files
echo "Start $SERVICE data backup"
if [ ! -d "$REDIS_DATA_DIR" ]; then
    echo "Invalid folder $REDIS_DATA_DIR. Skipping." 
else
    cd $REDIS_DATA_DIR
    tar czf $DEST_FOLDER/redis_data.tar.gz .
    echo "Completed $SERVICE data backup"
fi

echo "Start $SERVICE log backup"
if [ ! -d "$REDIS_LOG_DIR" ]; then
    echo "Invalid folder $REDIS_LOG_DIR. Skipping."
else
    cd $REDIS_LOG_DIR
    tar czf $DEST_FOLDER/redis_log.tar.gz .
    echo "Completed $SERVICE log backup"
fi

echo "Start $SERVICE conf backup"
if [ ! -d "$REDIS_LOG_DIR" ]; then
    echo "Invalid folder $REDIS_CONF_DIR. Skipping."
else
    cd $REDIS_CONF_DIR
    tar czf $DEST_FOLDER/redis_conf.tar.gz .
    echo "Completed $SERVICE conf backup"
fi
