#!/bin/bash
set -e

if [[ ( -v 1 ) && ( -v 2 ) ]]; then
	echo "Копирование '$1' в '$2'"
else
	echo "Укажите параметры <копируемая директория> <репозиторий резервных копий>"
	exit -1
fi

# Директория которую необходимо копировать
source_directory="$1"
# Директория для копий
backup_store_directory="$2"


# формат архива
tarball_format="bz"

# Аргументы запуска tar
tar_args="--verbose \
--create \
--atime-preserve \
--dereference \
--auto-compress"

# Конечное название директории в репозитории копий
source_directory_target_name=$(basename "$source_directory")
# Полный конечный путь
backup_target="$backup_store_directory/$source_directory_target_name"
# Конечный путь к файлу состояния
snarfile="$backup_target/$source_directory_target_name.snar"


if [[ ! -d "$source_directory" ]]; then
	echo "Директории $source_directory не существует"
	error=-1
elif [[ ! -d "$backup_target" ]]; then
	echo "Создание $backup_target..."
	mkdir -p "$backup_target"
	if [[ $? -ne 0 ]]; then
		echo "Не удалось создать директорию $backup_target"
		error=-2
	fi
fi


if [[ -z $(find "$backup_target/" -name 'init*.tar.*') ]]; then
	initial_required=true
	echo "Будет выполнено первичное резервное копирование"
	target_archive_name="init"
else
	initial_required=false
	echo "Будет выполнено инкрементальное резервное копирование"
	target_archive_name="incr"
fi
target_archive_name="$target_archive_name-$(date +'%d-%m-%Y__%H-%M-%S').tar.$tarball_format"

echo $backup_target
tar $tar_args \
--file="$backup_target/$target_archive_name" \
--listed-incremental="$snarfile" \
"$source_directory"

