1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-08-02 03:28:28 -04:00
Files
DankMaterialShell/core/internal/utils/greeter_setup.go

41 lines
967 B
Go

package utils
import (
"bufio"
"fmt"
"os/exec"
"strings"
)
// RunDmsGreeterInstall delegates greeter setup to the standalone dms-greeter
// binary, which owns greetd configuration since the greeter moved out of DMS.
func RunDmsGreeterInstall(sudoPassword string, logFunc func(string)) error {
binary, err := exec.LookPath("dms-greeter")
if err != nil {
return fmt.Errorf("dms-greeter binary not found; install the dms-greeter package and run 'dms-greeter install'")
}
var cmd *exec.Cmd
if sudoPassword == "" {
cmd = exec.Command(binary, "install", "--yes")
} else {
cmd = exec.Command("sudo", "-S", "-p", "", binary, "install", "--yes")
cmd.Stdin = strings.NewReader(sudoPassword + "\n")
}
stdout, err := cmd.StdoutPipe()
if err != nil {
return err
}
cmd.Stderr = cmd.Stdout
if err := cmd.Start(); err != nil {
return err
}
scanner := bufio.NewScanner(stdout)
for scanner.Scan() {
logFunc(scanner.Text())
}
return cmd.Wait()
}