#!/usr/bin/env python3
import sys
import os
import time
import tarfile

# Файлы и директории, которые необходимо скопировать, собираются в список.
source = []
source.extend(sys.argv[1:])
condition = True

# Путь к директории, где хранятся бэкапы
target_dir = '/home/user/media/Python'

# Именем для архива служит текущая дата и время.
today = target_dir + os.sep + time.strftime('%Y%m%d')
# Текущее время служит именем архива
now = time.strftime('%H%M%S')

# Определение функции для создания архива с помощью tar
def make_tarfile(output_filename, source_dir):
    with tarfile.open(output_filename, "w:gz") as tar:
    	for i in source_dir:
       		tar.add(i, arcname=os.path.basename(i))

# Проверка правильности путей в аргументах
for i in source:
	if not os.path.exists(i):
		sys.exit('Error: Some argument is not found')
	else:
		pass

# Выполнение функции
# Проверка на пустой список
if not source:
	print('Список директорий пуст.')
else:
	# Запрос комментария пользователя для имени файла
	comment = input('Введите комментарий: ')
	if len(comment) == 0:
		target = today + os.sep + now + '.tar.gz'
	else:
		target = today + os.sep + now + '_' + \
		comment.replace(' ', '_') + '.tar.gz'
	# Создание каталога, если его еще нет
	if not os.path.exists(today):
		os.mkdir(today)
		print('Каталог {} успешно создан.'.format(today))
	# Вызов функции
	make_tarfile(target, source)
	print('Резервная копия успешно создана в', target)