blob: 38594da1c96b0dd58c1ca46918c47a0bc68f0f5b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#!/bin/bash -e
validate_path() {
# validate path
targetpath=$(realpath -m -- "$1")
if [[ "$targetpath" != /.snapshots/* ]]; then
echo "Invalid path given." >&2
exit 2
fi
}
case "$1" in
snapshot)
validate_path "$2"
touch /home
btrfs subvolume snapshot -r -- /home "$2"
;;
delete_snapshot)
validate_path "$2"
btrfs subvolume delete -- "$2"
;;
mount)
validate_path "$2"
mkdir -p /backup
mount --bind -- "$2" /backup
;;
cleanup)
umount /backup 2> /dev/null || true
rm -rf /backup
;;
*)
echo "No command specified." >&2
exit 1
;;
esac
|