#! /bin/bash nochange() { zenity --info --text "Package Backup and Restore Halted -- No Changes Made"; exit 0; } restore() { if [ $UID -eq 0 ] then name=$(zenity --file-selection --text "Open file:" --filename ~/.system_restore/); zenity --question --text "Install all packages?"; if [ $? -eq 0 ] then if [ -f $name ] then zenity --info --text "File exists and ready"; gksudo dpkg --set-selections < $name; dselect; else zenity --info --text "Not a file"; nochange; fi else nochange; fi else zenity --info --text "You are not root"; exit 0 fi return; } backup() { saveas=$(zenity --entry --text "Save as:"); if [ -e ~/.system_restore/$saveas ] then if [ -d ~/.system_restore/$saveas ] then zenity --info --text "That is a directory"; nochange; fi zenity --question --text "File exists, overwrite?"; if [ $? -eq 0 ] then dpkg --get-selections > ~/.system_restore/$saveas; else exit; fi else dpkg --get-selections > ~/.system_restore/$saveas; fi return; } main() { mkdir ~/.system_restore; ans=$(zenity --list --text "Package Backup and Restore" --radiolist --column "Pick" --column "Option" TRUE "Backup" FALSE "Restore"); if [ $? -eq 1 ] then nochange; else if [ $ans == "Backup" ] then backup; elif [ $ans == "Restore" ] then restore; else nochange; fi fi } mainCLI() { echo "CLI version not made."; } if [ $@ == "--no-gui" ] then mainCLI; elif [ $@ == "-h" || $@ == "--help" ] then echo "Use the --no-gui command line option to run in shell"; else main; fi