Skip to content

Instantly share code, notes, and snippets.

@dbazile
Created May 23, 2021 23:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dbazile/16e4a72fc2d7abd566b032634ef080b8 to your computer and use it in GitHub Desktop.
Save dbazile/16e4a72fc2d7abd566b032634ef080b8 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -e
NEW_CONFIG='/root/grub.cfg.new'
OLD_CONFIG='/boot/efi/EFI/fedora/grub.cfg'
checkpoint() { echo -e "\033[1m\n$*\033[0m"; }
checkpoint "edit grub defaults:"
sudo vim /etc/default/grub
checkpoint "generate config: $NEW_CONFIG"
sudo grub2-mkconfig 2>/dev/null | sudo tee "$NEW_CONFIG" > /dev/null
checkpoint "changes:"
if sudo diff -u --color "$OLD_CONFIG" "$NEW_CONFIG"; then
echo "none"
exit 1
fi
checkpoint "backup and install new config?"
read -p '(y/N): '
if [[ ! $REPLY =~ ^y|Y ]]; then
echo "exiting"
exit 1
fi
checkpoint "making backup:"
timestamp=$(date +'%Y%m%d%H%M%S')
backup="/root/grub.cfg.${timestamp}~"
set -x
sudo cp "$OLD_CONFIG" "$backup"
sudo chmod -x "$backup"
sudo mv "$NEW_CONFIG" "$OLD_CONFIG"
sudo chmod +x "$OLD_CONFIG"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment