nixos/modules/scripts/reboot-windows.bash

28 lines
827 B
Bash
Raw Normal View History

2026-01-20 01:02:28 +01:00
#!/usr/bin/env bash
# Find windows entry id using bootctl
WINDOWS_ID=$(bootctl list --json=short | jq -r '.[] | select(.title != null) | select(.title | ascii_downcase | contains("windows")) | .id' | head -n 1)
if [ -z "$WINDOWS_ID" ]; then
# Fallback to checking the ID itself
WINDOWS_ID=$(bootctl list --json=short | jq -r '.[] | select(.id | ascii_downcase | contains("windows")) | .id' | head -n 1)
fi
if [ -z "$WINDOWS_ID" ]; then
echo "Error: No Windows boot entry found in systemd-boot."
exit 1
fi
echo "Setting next boot to: $WINDOWS_ID"
# Check if we have root, if not, try to use sudo
if [ "$EUID" -ne 0 ]; then
sudo bootctl set-oneshot "$WINDOWS_ID"
echo "Rebooting..."
sudo systemctl reboot
else
bootctl set-oneshot "$WINDOWS_ID"
echo "Rebooting..."
systemctl reboot
fi