diff --git a/scripts/mount-btrfs b/scripts/mount-btrfs new file mode 100755 index 0000000..54563a0 --- /dev/null +++ b/scripts/mount-btrfs @@ -0,0 +1,45 @@ +#!/bin/bash + +restoreDir="/etc/restore" + +scriptPath="$(dirname "$(readlink -f "$0")")" + +source "${scriptPath}/functions.sh" + +hook_before() { + local btrfsPartition + + btrfsPartition="$(findmnt -oSOURCE -rnv /)" + + if [[ ! -d "/.btrfs" ]]; then + mkdir /.btrfs + fi + + if ! mount | grep '\.btrfs' &>/dev/null; then + mount "$btrfsPartition" -o subvolid=5 /.btrfs || exit 200 + fi +} + +hook_fail() { + if mount | grep '\.btrfs' &>/dev/null; then + umount /.brtfs || exit 200 + fi +} + +hook_after() { + : +} + +hook_final() { + if mount | grep '\.btrfs' &>/dev/null; then + umount /.brtfs || exit 200 + fi +} + + +case "$1" in + before) hook_before || exit $?;; + after) hook_after || exit $?;; + fail) hook_final || exit $?;; + finally) hook_final || exit $?;; +esac