feat: add reboot and shutdown

This commit is contained in:
2025-05-13 14:37:32 +02:00
parent 9c80c1e771
commit ee0489dcbb
7 changed files with 144 additions and 21 deletions

33
pkg/system/state.go Normal file
View File

@@ -0,0 +1,33 @@
package system
import (
"log"
"github.com/godbus/dbus/v5"
)
// Restart restarts the system.
func Restart() error {
return WithDbus(func(conn *dbus.Conn) error {
obj := conn.Object("org.freedesktop.systemd1", "/org/freedesktop/systemd1")
log.Println("Rebooting system...")
call := obj.Call("org.freedesktop.systemd1.Manager.Reboot", 0)
if call.Err != nil {
log.Fatal(call.Err)
}
return nil
})
}
// Shutdown shuts down the system.
func Shutdown() error {
return WithDbus(func(conn *dbus.Conn) error {
obj := conn.Object("org.freedesktop.systemd1", "/org/freedesktop/systemd1")
log.Println("Shutting down system...")
call := obj.Call("org.freedesktop.systemd1.Manager.PowerOff", 0)
if call.Err != nil {
log.Fatal(call.Err)
}
return nil
})
}