From dea5760d75fad62637d46ed8bd57968fed3c4c7e Mon Sep 17 00:00:00 2001 From: EnumDev Date: Sun, 9 Nov 2025 11:28:51 +0200 Subject: [PATCH] Read enabled services file during runtime --- src/esvm/main.go | 2 +- src/esvm/service.go | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/esvm/main.go b/src/esvm/main.go index 0e63100..405eb85 100644 --- a/src/esvm/main.go +++ b/src/esvm/main.go @@ -199,7 +199,7 @@ func Init() { } // Read enabled services - ReadEnabledServices() + EnabledServices := ReadEnabledServices() // Start enabled services stages := slices.Collect(maps.Keys(EnabledServices)) diff --git a/src/esvm/service.go b/src/esvm/service.go index b9964ae..cdddc9b 100644 --- a/src/esvm/service.go +++ b/src/esvm/service.go @@ -60,7 +60,6 @@ type EnitService struct { } var Services = make([]*EnitService, 0) -var EnabledServices = make(map[int][]string) var startedServicesOrder = make([]string, 0) func (service *EnitService) GetUnmetDependencies() (missingDependencies []string) { @@ -446,10 +445,8 @@ func (service *EnitService) RestartService() error { return nil } -// Functions will be rewritten at some point to allow enabling unloaded services - func (service *EnitService) isEnabled() (bool, int) { - for stage, services := range EnabledServices { + for stage, services := range ReadEnabledServices() { if slices.Contains(services, service.Name) { return true, stage } @@ -467,6 +464,8 @@ func (service *EnitService) SetEnabled(stage int) error { return nil } + EnabledServices := ReadEnabledServices() + // Remove service from current stage EnabledServices[s] = slices.DeleteFunc(EnabledServices[s], func(name string) bool { return name == service.Name @@ -493,10 +492,12 @@ func (service *EnitService) SetEnabled(stage int) error { 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")) if err != nil { - return err + return EnabledServices } err = yaml.Unmarshal(data, &EnabledServices) @@ -509,15 +510,15 @@ func ReadEnabledServices() error { // Update enabled_services file data, err := yaml.Marshal(EnabledServices) if err != nil { - return err + return EnabledServices } err = os.WriteFile(path.Join(serviceConfigDir, "enabled_services"), data, 0644) if err != nil { - return err + return EnabledServices } - return nil + return EnabledServices } - return nil + return EnabledServices }