ectl: move enable/disable service functionality back into ectl

This commit is contained in:
2025-12-07 18:03:13 +02:00
parent 354fa510fd
commit 06f5e6564f
6 changed files with 146 additions and 165 deletions
-47
View File
@@ -511,53 +511,6 @@ func (service *EnitService) RestartService() error {
return nil
}
func (service *EnitService) isEnabled() (bool, int) {
for stage, services := range ReadEnabledServices() {
if slices.Contains(services, service.Name) {
return true, stage
}
}
return false, 0
}
func (service *EnitService) SetEnabled(stage int) error {
// Get current service enabled status
_, s := service.isEnabled()
// Return if service is already in correct state
if s == stage {
return nil
}
EnabledServices := ReadEnabledServices()
// Remove service from current stage
EnabledServices[s] = slices.DeleteFunc(EnabledServices[s], func(name string) bool {
return name == service.Name
})
if len(EnabledServices[s]) == 0 {
delete(EnabledServices, s)
}
// Add service to stage
if stage != 0 {
EnabledServices[stage] = append(EnabledServices[stage], service.Name)
}
// Save enabled services to file
data, err := yaml.Marshal(EnabledServices)
if err != nil {
return err
}
err = os.WriteFile(path.Join(serviceConfigDir, "enabled_services"), data, 0644)
if err != nil {
return err
}
return nil
}
func ReadEnabledServices() (EnabledServices map[int][]string) {
EnabledServices = make(map[int][]string)