#!/bin/sh
migration_complete_file="/data/ext/migration_complete"
data_lxc_dir="/data/lxc"
data_opkg_dir="/data/opkg"
data_shgw_dir="/data/shgw"
backup_file_name="crsp_lxc_backup.tar.gz"
log_file_path="/data/lxc_backup_logs.txt"
dhcpd_leases_file_path="/data/dhcpd*"
dirs="$data_lxc_dir $data_opkg_dir $data_shgw_dir"
files="$dhcpd_leases_file_path"
compress_paths=""

for dir in $dirs; do
    if [ -d "$dir" ]; then
        compress_paths="$compress_paths $dir"
    fi
done

for file in $files; do
    if [ -f "$file" ]; then
        compress_paths="$compress_paths $file"
    fi
done

do_backup_crsp_lxc() {
    > $log_file_path    # Clear Log File
    date >> $log_file_path
    if [ -e $migration_complete_file ]
    then
        echo "do_backup_crsp_lxc: Not a Migration Flow, Skipping LXC Backup" >> $log_file_path
    else
        echo "do_backup_crsp_lxc: Backing up CRSP /data/lxc" >> $log_file_path
        if [ -n "$compress_paths" ]; then
            tar -zcvf /data/$backup_file_name $compress_paths
        fi
        if [ -e /data/$backup_file_name ]
        then
            echo "do_backup_crsp_lxc: Succesfully Created $backup_file_name" >> $log_file_path
        else
            retVal=$?
            echo "do_backup_crsp_lxc: Failed to create $backup_file_name. [$retVal]" >> $log_file_path
        fi
    fi
}

boot_hook_add preinit_main do_backup_crsp_lxc
