75 lines
1.6 KiB
Bash
Executable file
75 lines
1.6 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
restoreDir="/etc/restore"
|
|
|
|
kernel="$(uname -s)"
|
|
scriptPath="$(dirname "$(readlink -f "$0")")"
|
|
|
|
|
|
if [[ "$kernel" == "Darwin" ]]; then
|
|
restoreDir="${HOME}/restore"
|
|
fi
|
|
|
|
createRestoreDir() {
|
|
if [[ -d "${restoreDir}" ]]; then
|
|
rm -rf "${restoreDir}" || exit 2
|
|
fi
|
|
mkdir -p "${restoreDir}" || exit 2
|
|
}
|
|
|
|
checkOS() {
|
|
if [[ "$kernel" == "Darin" ]]; then
|
|
return 0
|
|
elif [[ "$kernel" == "Linux" ]]; then
|
|
if [[ -f /etc/os-release ]]; then
|
|
source /etc/os-release
|
|
return 0
|
|
else
|
|
echo "Unknown Linux Distribution"
|
|
return 1
|
|
fi
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
runOsHook() {
|
|
local hook="$1"
|
|
|
|
if [[ "$kernel" == "Darwin" ]]; then
|
|
"${scriptPath}/os_macos" "$hook"
|
|
elif [[ "$kernel" == "Linux" ]]; then
|
|
case "$ID" in
|
|
debian) "${scriptPath}/os_debian" "$hook";;
|
|
fedora) "${scriptPath}/os_fedora" "$hook";;
|
|
solus) "${scriptPath}/os_solus" "$hook";;
|
|
opensuse-leap) "${scriptPath}/os_suse" "$hook";;
|
|
opensuse-tumbleweed) "${scriptPath}/os_suse" "$hook";;
|
|
esac
|
|
fi
|
|
return $?
|
|
}
|
|
|
|
|
|
hook_check() {
|
|
checkOS || exit 200
|
|
|
|
runOsHook before_check
|
|
}
|
|
|
|
hook_pre() {
|
|
hook_check || exit 200
|
|
|
|
createRestoreDir || exit $?
|
|
runOsHook before_backup
|
|
}
|
|
|
|
hook_post() {
|
|
rm -rf "$restoreDir"
|
|
}
|
|
|
|
|
|
case "$1" in
|
|
before_check) hook_check || exit $?;;
|
|
before_backup) hook_pre || exit $?;;
|
|
after_backup) hook_post || exit $?;;
|
|
esac
|