From 46a77604b387122d8c9155a6a723097bbb4299df Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 28 Nov 2019 12:14:48 +0100 Subject: [PATCH] local/bin/btrfs-snap-all: Add option to run "git gc" on all .git folders. --- .local/bin/btrfs-snap-all | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.local/bin/btrfs-snap-all b/.local/bin/btrfs-snap-all index 02f0e4a3..22465af2 100755 --- a/.local/bin/btrfs-snap-all +++ b/.local/bin/btrfs-snap-all @@ -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) "