Snapshot listing implemented #4

Merged
jarno merged 1 commits from dev into master 2020-08-02 20:30:40 +03:00
1 changed files with 24 additions and 5 deletions
Showing only changes of commit c2f4819a38 - Show all commits

29
snapsh
View File

@ -36,7 +36,7 @@ Options:
-h, --help Display this help message -h, --help Display this help message
-d STR, --description STR Add a description for the snapshot displayed in the -d STR, --description STR Add a description for the snapshot displayed in the
snapshots listing. Must be used before -s, e.g. snapshots listing. Must be used before -s, e.g.
snapsh -d "A snapshot" -s root snapsh -d \"A snapshot\" -s root
-s SUBVOL, --snapshot SUBVOL Take a snapshot of subvolume named SUBVOL. -s SUBVOL, --snapshot SUBVOL Take a snapshot of subvolume named SUBVOL.
Exit codes: Exit codes:
@ -67,9 +67,9 @@ snapshot() {
# Create info file for listing snapshots # Create info file for listing snapshots
# Created first on the source subvolume, then deleted # Created first on the source subvolume, then deleted
printf "DATE=$(date) printf "DATE=\"$(date)\"
SOURCE_SUBVOLUME=${SUBVOLUME} SOURCE_SUBVOLUME=\"${SUBVOLUME}\"
DESCRIPTION=${DESCRIPTION} DESCRIPTION=\"${DESCRIPTION}\"
TYPE=\"manual\"\n" > ${TOPLEVEL}/${SUBVOLUME}/.snapsh TYPE=\"manual\"\n" > ${TOPLEVEL}/${SUBVOLUME}/.snapsh
# Create readonly subvolume # Create readonly subvolume
@ -92,6 +92,20 @@ snapshot() {
list() {
root_check
NUM=0
printf "%6s %s %s %26s %s %s %6s %s %s\n" "Number" "|" "Time:" "|" "Source" "|" "Type" "|" "Description"
for snapshot in ${SNAPSHOTS_LOCATION}/*/; do
. ${snapshot}/.snapsh
printf "%8s %32s %8s %8s %s\n" "${NUM} |" "${DATE} |" "${SOURCE_SUBVOLUME} |" "${TYPE} |" "${DESCRIPTION}"
let NUM=NUM+1
done
exit 0
}
# Check for root permissions # Check for root permissions
root_check() { root_check() {
if [[ "$UID" -ne 0 ]]; then if [[ "$UID" -ne 0 ]]; then
@ -110,7 +124,7 @@ fi
# Options parsing: # Options parsing:
OPTIONS=$(getopt -a -n snapsh -o hs:d: --long help,snapshot:,description: -- "$@") OPTIONS=$(getopt -a -n snapsh -o hs:d:l --long help,snapshot:,description:,list -- "$@")
# Invalid options (getopt returns nonzero) # Invalid options (getopt returns nonzero)
if [[ "$?" -ne 0 ]]; then if [[ "$?" -ne 0 ]]; then
@ -140,6 +154,11 @@ while true; do
shift 2 shift 2
;; ;;
-l | --list)
list
shift
;;
esac esac
done done