better output messages in btrfs-snapshots.sh, getting close to a acceptable state for v0.2.0
This commit is contained in:
parent
c31fd02092
commit
5ca2729bff
|
@ -46,6 +46,7 @@ BTRFS_OPTIONS="-q"
|
||||||
BTRFS_COMMAND="$BTRFS_BINARY $BTRFS_OPTIONS"
|
BTRFS_COMMAND="$BTRFS_BINARY $BTRFS_OPTIONS"
|
||||||
|
|
||||||
# How many snapshots should be kept?
|
# How many snapshots should be kept?
|
||||||
|
# Can be overridden with an option flag (-s)
|
||||||
SNAPSHOTS=128
|
SNAPSHOTS=128
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,9 +56,9 @@ SNAPSHOTS=128
|
||||||
|
|
||||||
# Print help information
|
# Print help information
|
||||||
function print_help() {
|
function print_help() {
|
||||||
printf "%s\n\n%s\n%b\n\n%s\n %-15s %s\n %-15s %s\n %-15s %s\n %-15s %s\n %-15s %s\n" \
|
printf "%s\n\n%s\n%b\n\n%s\n %-21s %s\n %-21s %s\n %-21s %s\n %-21s %s\n %-21s %s\n" \
|
||||||
"$DESCRIPTION" "Usage:" "$LIB_BOLD$EXECUTABLE <options> <subvolume>$LIB_CLEAR" "Options:" \
|
"$DESCRIPTION" "Usage:" "$LIB_BOLD$EXECUTABLE <options> <subvolume>$LIB_CLEAR" "Options:" \
|
||||||
"-s, --snapshots <number>" "Override how many snapshots to keep (default: 128)" \
|
"-s, --snapshots <int>" "Override how many snapshots to keep (default: 128)" \
|
||||||
"-h, --help" "Print help screen and exit" \
|
"-h, --help" "Print help screen and exit" \
|
||||||
"-i, --info" "Print script information and exit" \
|
"-i, --info" "Print script information and exit" \
|
||||||
"-v, --verbose" "More verbose output" \
|
"-v, --verbose" "More verbose output" \
|
||||||
|
@ -118,19 +119,19 @@ while [[ "$1" =~ ^- && ! "$1" == "--" ]]; do
|
||||||
lib_print "!Input for --snapshots must be an intager"
|
lib_print "!Input for --snapshots must be an intager"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
-h|--help)
|
-h|--help)
|
||||||
H=1
|
H=1
|
||||||
;;
|
;;
|
||||||
-i|--info)
|
-i|--info)
|
||||||
I=1
|
I=1
|
||||||
;;
|
;;
|
||||||
-v|--verbose)
|
-v|--verbose)
|
||||||
V=1
|
V=1
|
||||||
;;
|
;;
|
||||||
-q|--quiet)
|
-q|--quiet)
|
||||||
Q=1
|
Q=1
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
lib_print "!Unknown option [$1]"
|
lib_print "!Unknown option [$1]"
|
||||||
lib_print "Try --help or -h for available options"
|
lib_print "Try --help or -h for available options"
|
||||||
|
@ -164,28 +165,40 @@ else
|
||||||
mkdir "$SNAP_FOLDER"
|
mkdir "$SNAP_FOLDER"
|
||||||
fi
|
fi
|
||||||
if [[ -d "$SNAP_FOLDER/$SNAP_NAME" ]]; then
|
if [[ -d "$SNAP_FOLDER/$SNAP_NAME" ]]; then
|
||||||
lib_print "?Skipping snapshot because it already exists. [$SNAP_NAME]"
|
lib_print "?Skipping snapshot because it already exists. [$SNAP_FOLDER/$SNAP_NAME]"
|
||||||
else
|
else
|
||||||
# Take the snapshot
|
# Take the snapshot
|
||||||
$BTRFS_COMMAND subvolume snapshot -r "${1%/}" "$SNAP_FOLDER/$SNAP_NAME"
|
#TODO: handle failed snapshot creations
|
||||||
|
if $($BTRFS_COMMAND subvolume snapshot -r "${1%/}" "$SNAP_FOLDER/$SNAP_NAME"); then
|
||||||
|
lib_print "Created new snapshot [$SNAP_FOLDER/$SNAP_NAME]"
|
||||||
|
else
|
||||||
|
lib_print "!Error occured while creating new snapshot [$SNAP_FOLDER/$SNAP_NAME]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
if [ -h "$SNAP_FOLDER/latest" ]; then
|
if [ -h "$SNAP_FOLDER/latest" ]; then
|
||||||
rm "$SNAP_FOLDER/latest"
|
rm "$SNAP_FOLDER/latest"
|
||||||
fi
|
fi
|
||||||
ln -sf "$SNAP_FOLDER/$SNAP_NAME" "$SNAP_FOLDER/latest"
|
ln -sf "$SNAP_FOLDER/$SNAP_NAME" "$SNAP_FOLDER/latest"
|
||||||
|
lib_print "?Relinked latest to new snapshot [$SNAP_FOLDER/$SNAP_NAME]"
|
||||||
# Delete old snapshots
|
# Delete old snapshots
|
||||||
SNAPS=$(ls -r $SNAP_FOLDER | grep $SNAP_PREFIX)
|
SNAPS=($(ls -r $SNAP_FOLDER | grep $SNAP_PREFIX))
|
||||||
|
lib_print "?Snapshot retention is set to: $SNAPSHOTS"
|
||||||
|
lib_print "?Existing snapshots found: ${#SNAPS[@]}"
|
||||||
i=0
|
i=0
|
||||||
for SNAP in $SNAPS; do
|
for SNAP in ${SNAPS[@]}; do
|
||||||
if [[ $i -ge $SNAPSHOTS ]]; then
|
if [[ $i -ge $SNAPSHOTS ]]; then
|
||||||
#TODO: handle failed snapshot deletions
|
if $($BTRFS_COMMAND subvolume delete "$SNAP_FOLDER/$SNAP"); then
|
||||||
$BTRFS_COMMAND subvolume delete "$SNAP_FOLDER/$SNAP"
|
lib_print "Deleted old snapshot [$SNAP_FOLDER/$SNAP]"
|
||||||
lib_print "Deleted old snapshot [$SNAP_FOLDER/$SNAP]"
|
else
|
||||||
|
lib_print "!Error occured while deleting old snapshot [$SNAP_FOLDER/$SNAP]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
i=$((i+1))
|
i=$((i+1))
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
lib_print "!Given path does not appear to be a Btrfs subvolume [$1]"
|
lib_print "!Input does not appear to be a Btrfs subvolume [$1]"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue