local/bin/btrfs-snap-all: Add option to run "git gc" on all .git folders.

master
Pierre Neidhardt 2019-11-28 12:14:48 +01:00
parent 00c01f1e17
commit 46a77604b3
1 changed files with 11 additions and 1 deletions

View File

@ -9,13 +9,17 @@ Snapshot all Btrfs subvolumes older than 1 day to a read-only '.snapshots/SUBVOL
Options:
-n: No preview.
-g: Run "git gc" on all .git folders.
EOF
}
OPT_PREVIEW=true
while getopts ":hn" opt; do
OPT_GIT_GC=false
while getopts ":ghn" opt; do
case $opt in
g)
OPT_GIT_GC=true ;;
h)
usage
exit ;;
@ -29,12 +33,18 @@ done
shift $(($OPTIND - 1))
git_gc() { # $1=rootdir
find "$1" -type d -name ".git" -print -exec git --git-dir {} gc \;
}
snap () { # $1=fs $2=subvol
local fs=$1
local subvol=$2
local choice=N
local last=$(find "$fs/.snapshots/$subvol" -maxdepth 1 | tail -1)
$OPT_GIT_GC && git_gc "$fs/subvol"
$OPT_PREVIEW && rmirror "$fs/$subvol" "$last"
echo -n "==> Snapshot '$fs/${subvol}'? (y/N) "