diff --git a/core/cmd/dms/utils.go b/core/cmd/dms/utils.go index 93c978a02..20d1f34d1 100644 --- a/core/cmd/dms/utils.go +++ b/core/cmd/dms/utils.go @@ -1,9 +1,7 @@ package main import ( - "fmt" "os/exec" - "slices" "strings" ) @@ -28,62 +26,3 @@ func isArchPackageInstalled(packageName string) bool { err := cmd.Run() return err == nil } - -type systemdServiceState struct { - Name string - EnabledState string - NeedsDisable bool - Exists bool -} - -// checkSystemdServiceEnabled returns (state, should_disable, error) for a systemd service -func checkSystemdServiceEnabled(serviceName string) (string, bool, error) { - cmd := exec.Command("systemctl", "is-enabled", serviceName) - output, err := cmd.Output() - - stateStr := strings.TrimSpace(string(output)) - - if err != nil { - knownStates := []string{"disabled", "masked", "masked-runtime", "not-found", "enabled", "enabled-runtime", "static", "indirect", "alias"} - isKnownState := slices.Contains(knownStates, stateStr) - - if !isKnownState { - return stateStr, false, fmt.Errorf("systemctl is-enabled failed: %w (output: %s)", err, stateStr) - } - } - - shouldDisable := false - switch stateStr { - case "enabled", "enabled-runtime", "static", "indirect", "alias": - shouldDisable = true - case "disabled", "masked", "masked-runtime", "not-found": - shouldDisable = false - default: - shouldDisable = true - } - - return stateStr, shouldDisable, nil -} - -func getSystemdServiceState(serviceName string) (*systemdServiceState, error) { - state := &systemdServiceState{ - Name: serviceName, - Exists: false, - } - - enabledState, needsDisable, err := checkSystemdServiceEnabled(serviceName) - if err != nil { - return nil, fmt.Errorf("failed to check enabled state: %w", err) - } - - state.EnabledState = enabledState - state.NeedsDisable = needsDisable - - if enabledState == "not-found" { - state.Exists = false - return state, nil - } - - state.Exists = true - return state, nil -}