mirror of
https://github.com/EnumeratedDev/enit.git
synced 2026-09-16 02:26:11 +00:00
Read enabled services file during runtime
This commit is contained in:
+1
-1
@@ -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
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user