#!/bin/bash

function before_backup {
    # Здесь должен быть код для скрипта, который выполняется перед
    # созданием архива
    return
}
function before_restore {
    # Здесь должен быть код для скрипта, который выполняется перед
    # восстановлением из архива
    return
}
function after_successful_backup {
    # Здесь должен быть код для скрипта, который выполняется после
    # успешного создания архива
    return
}
function after_failed_backup {
    # Здесь должен быть код для скрипта, который выполняется после
    # неудачного создания архива
    return
}
function after_not_needed_backup {
    # Здесь должен быть код для скрипта, который выполняется после
    # попытки создания архива, в случае когда файлы, добавляемые в
    # архив, не изменились
    return
}
function after_successful_restore {
    # Здесь должен быть код для скрипта, который выполняется после
    # успешного восстановления из архива
    return
}
function after_failed_restore {
    # Здесь должен быть код для скрипта, который выполняется после
    # неудачного восстановления из архива
    return
}
result=0
if [[ $phase == 'pre' ]]
then
  if [[ $operation == 'backup' ]]
  then
    before_backup
    result=$?
  elif [[ $operation == 'restore' ]]
  then
    before_restore
    result=$?
  fi
elif [[ $phase == 'post' ]]
then
  if [[ $operation == 'backup' ]]
  then
    if [[ $state == 'successful' ]]
    then
      after_successful_backup
      result=$?
    elif [[ $state == 'failed' ]]
    then
      after_failed_backup
      result=$?
    elif [[ $state == 'not_needed' ]]
    then
      after_not_needed_backup
      result=$?
    fi
  elif [[ $operation == 'restore' ]]
  then
    if [[ $state == 'successful' ]]
    then
      after_successful_restore
      result=$?
    elif [[ $state == 'failed' ]]
    then
      after_failed_restore
      result=$?
    fi
  fi
fi
exit $result
