Read enabled services file during runtime

This commit is contained in:
2025-11-09 11:28:51 +02:00
parent 70ef610ce6
commit dea5760d75
2 changed files with 12 additions and 11 deletions
+1 -1
View File
@@ -199,7 +199,7 @@ func Init() {
} }
// Read enabled services // Read enabled services
ReadEnabledServices() EnabledServices := ReadEnabledServices()
// Start enabled services // Start enabled services
stages := slices.Collect(maps.Keys(EnabledServices)) stages := slices.Collect(maps.Keys(EnabledServices))
+11 -10
View File
@@ -60,7 +60,6 @@ type EnitService struct {
} }
var Services = make([]*EnitService, 0) var Services = make([]*EnitService, 0)
var EnabledServices = make(map[int][]string)
var startedServicesOrder = make([]string, 0) var startedServicesOrder = make([]string, 0)
func (service *EnitService) GetUnmetDependencies() (missingDependencies []string) { func (service *EnitService) GetUnmetDependencies() (missingDependencies []string) {
@@ -446,10 +445,8 @@ func (service *EnitService) RestartService() error {
return nil return nil
} }
// Functions will be rewritten at some point to allow enabling unloaded services
func (service *EnitService) isEnabled() (bool, int) { func (service *EnitService) isEnabled() (bool, int) {
for stage, services := range EnabledServices { for stage, services := range ReadEnabledServices() {
if slices.Contains(services, service.Name) { if slices.Contains(services, service.Name) {
return true, stage return true, stage
} }
@@ -467,6 +464,8 @@ func (service *EnitService) SetEnabled(stage int) error {
return nil return nil
} }
EnabledServices := ReadEnabledServices()
// Remove service from current stage // Remove service from current stage
EnabledServices[s] = slices.DeleteFunc(EnabledServices[s], func(name string) bool { EnabledServices[s] = slices.DeleteFunc(EnabledServices[s], func(name string) bool {
return name == service.Name return name == service.Name
@@ -493,10 +492,12 @@ func (service *EnitService) SetEnabled(stage int) error {
return nil return nil
} }
func ReadEnabledServices() error { func ReadEnabledServices() (EnabledServices map[int][]string) {
EnabledServices = make(map[int][]string)
data, err := os.ReadFile(path.Join(serviceConfigDir, "enabled_services")) data, err := os.ReadFile(path.Join(serviceConfigDir, "enabled_services"))
if err != nil { if err != nil {
return err return EnabledServices
} }
err = yaml.Unmarshal(data, &EnabledServices) err = yaml.Unmarshal(data, &EnabledServices)
@@ -509,15 +510,15 @@ func ReadEnabledServices() error {
// Update enabled_services file // Update enabled_services file
data, err := yaml.Marshal(EnabledServices) data, err := yaml.Marshal(EnabledServices)
if err != nil { if err != nil {
return err return EnabledServices
} }
err = os.WriteFile(path.Join(serviceConfigDir, "enabled_services"), data, 0644) err = os.WriteFile(path.Join(serviceConfigDir, "enabled_services"), data, 0644)
if err != nil { if err != nil {
return err return EnabledServices
} }
return nil return EnabledServices
} }
return nil return EnabledServices
} }