Skip to content

Instantly share code, notes, and snippets.

@andersonpem
Created December 15, 2024 14:45
Show Gist options
  • Save andersonpem/5127f48f8aea8f2cea3b0594675f43c5 to your computer and use it in GitHub Desktop.
Save andersonpem/5127f48f8aea8f2cea3b0594675f43c5 to your computer and use it in GitHub Desktop.
Backup and restore flatpaks
#!/bin/bash
# Flatpak Backup and Restore Script
# Function to export installed Flatpaks
export_flatpaks() {
echo "Exporting installed Flatpak applications..."
# Create a directory for backups if it doesn't exist
mkdir -p ~/FlatpakBackup
# Export the list of installed Flatpaks
flatpak list --columns=application > ~/FlatpakBackup/installed_flatpaks.txt
echo "Flatpak applications exported to ~/FlatpakBackup/installed_flatpaks.txt"
}
# Function to restore Flatpaks from backup
restore_flatpaks() {
# Check if backup file exists
if [ ! -f ~/FlatpakBackup/installed_flatpaks.txt ]; then
echo "No Flatpak backup found at ~/FlatpakBackup/installed_flatpaks.txt"
exit 1
fi
echo "Restoring Flatpak applications..."
# Read the list of Flatpaks and install them
while read -r flatpak_id; do
echo "Installing: $flatpak_id"
flatpak install -y flathub "$flatpak_id"
done < ~/FlatpakBackup/installed_flatpaks.txt
echo "Flatpak restoration complete!"
}
# Main script logic
case "$1" in
"export")
export_flatpaks
;;
"restore")
restore_flatpaks
;;
*)
echo "Usage: $0 {export|restore}"
echo " export - Create a list of installed Flatpak applications"
echo " restore - Install Flatpak applications from the backup list"
exit 1
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment