2023-04-15 18:10:59 +00:00
|
|
|
#!/bin/bash
|
|
|
|
# ____ _ _
|
|
|
|
# / ___| _ __ __ _ _ __ ___| |__ ___ | |_
|
|
|
|
# \___ \| '_ \ / _` | '_ \/ __| '_ \ / _ \| __|
|
|
|
|
# ___) | | | | (_| | |_) \__ \ | | | (_) | |_
|
|
|
|
# |____/|_| |_|\__,_| .__/|___/_| |_|\___/ \__|
|
|
|
|
# |_|
|
|
|
|
#
|
2024-02-27 10:16:40 +00:00
|
|
|
# by Stephan Raabe (2024)
|
2023-04-15 18:10:59 +00:00
|
|
|
# -----------------------------------------------------
|
|
|
|
|
2024-02-27 10:16:40 +00:00
|
|
|
sleep 1
|
|
|
|
clear
|
|
|
|
figlet "Snapshot"
|
|
|
|
|
|
|
|
_isInstalledYay() {
|
|
|
|
package="$1";
|
|
|
|
check="$(yay -Qs --color always "${package}" | grep "local" | grep "${package} ")";
|
|
|
|
if [ -n "${check}" ] ; then
|
|
|
|
echo 0; #'0' means 'true' in Bash
|
|
|
|
return; #true
|
|
|
|
fi;
|
|
|
|
echo 1; #'1' means 'false' in Bash
|
|
|
|
return; #false
|
|
|
|
}
|
|
|
|
|
|
|
|
timeshift_installed=$(_isInstalledYay "timeshift")
|
|
|
|
grubbtrfs_installed=$(_isInstalledYay "grub-btrfs")
|
|
|
|
|
|
|
|
if [[ $timeshift_installed == "0" ]] ;then
|
|
|
|
c=$(gum input --placeholder "Enter a comment for the snapshot...")
|
|
|
|
sudo timeshift --create --comments "$c"
|
|
|
|
sudo timeshift --list
|
|
|
|
if [[ -d /boot/grub ]] ;then
|
|
|
|
if [[ -d /boot/grub ]] && [[ $grubbtrfs_installed == "1" ]] ;then
|
|
|
|
if gum confirm "DO YOU WANT TO INSTALL grub-btrfs now?" ;then
|
|
|
|
yay -S grub-btrfs
|
|
|
|
|
|
|
|
else
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
|
|
|
fi
|
|
|
|
echo "DONE. Snapshot $c created!"
|
|
|
|
else
|
|
|
|
echo "ERROR: Timeshift is not installed."
|
|
|
|
if gum confirm "DO YOU WANT TO INSTALL Timeshift now?" ;then
|
|
|
|
yay -S timeshift
|
|
|
|
echo
|
|
|
|
echo ":: Timeshift has been installed. Please restart this script."
|
|
|
|
if [[ -d /boot/grub ]] && [[ $grubbtrfs_installed == "1" ]] ;then
|
|
|
|
echo ":: grub-btrfs is required to select a snapshot on grub bootloader."
|
|
|
|
if gum confirm "DO YOU WANT TO INSTALL grub-btrfs now?" ;then
|
|
|
|
yay -S grub-btrfs
|
|
|
|
else
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|