From 970610f9f8fc8ca28f56f1e60d05eb1f913a34f4 Mon Sep 17 00:00:00 2001 From: yusing Date: Tue, 4 Feb 2025 10:43:16 +0800 Subject: [PATCH] fix extra output of ls-* commands by defer initializaing stuff, speed up start time --- cmd/main.go | 7 ++++--- internal/api/v1/favicon/cache.go | 3 +++ internal/homepage/override_config.go | 16 +++++++++------- internal/list-icons.go | 3 +++ 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/cmd/main.go b/cmd/main.go index d72845c..4352af6 100755 --- a/cmd/main.go +++ b/cmd/main.go @@ -35,9 +35,6 @@ func init() { } logging.InitLogger(out) // logging.AddHook(v1.GetMemLogger()) - internal.InitIconListCache() - homepage.InitOverridesConfig() - favicon.InitIconCache() } func main() { @@ -127,6 +124,10 @@ func main() { return } + go internal.InitIconListCache() + go homepage.InitOverridesConfig() + go favicon.InitIconCache() + cfg.Start(&config.StartServersOptions{ Proxy: true, }) diff --git a/internal/api/v1/favicon/cache.go b/internal/api/v1/favicon/cache.go index 62ba6f8..d138854 100644 --- a/internal/api/v1/favicon/cache.go +++ b/internal/api/v1/favicon/cache.go @@ -29,6 +29,9 @@ const ( ) func InitIconCache() { + iconCacheMu.Lock() + defer iconCacheMu.Unlock() + err := utils.LoadJSONIfExist(common.IconCachePath, &iconCache) if err != nil { logging.Error().Err(err).Msg("failed to load icon cache") diff --git a/internal/homepage/override_config.go b/internal/homepage/override_config.go index 2855b89..c8ac779 100644 --- a/internal/homepage/override_config.go +++ b/internal/homepage/override_config.go @@ -17,15 +17,17 @@ type OverrideConfig struct { mu sync.RWMutex } -var overrideConfigInstance *OverrideConfig +var overrideConfigInstance = &OverrideConfig{ + ItemOverrides: make(map[string]*ItemConfig), + DisplayOrder: make(map[string]int), + CategoryOrder: make(map[string]int), + ItemVisibility: make(map[string]bool), +} func InitOverridesConfig() { - overrideConfigInstance = &OverrideConfig{ - ItemOverrides: make(map[string]*ItemConfig), - DisplayOrder: make(map[string]int), - CategoryOrder: make(map[string]int), - ItemVisibility: make(map[string]bool), - } + overrideConfigInstance.mu.Lock() + defer overrideConfigInstance.mu.Unlock() + err := utils.LoadJSONIfExist(common.HomepageJSONConfigPath, overrideConfigInstance) if err != nil { logging.Error().Err(err).Msg("failed to load homepage overrides config") diff --git a/internal/list-icons.go b/internal/list-icons.go index f46a668..18f341c 100644 --- a/internal/list-icons.go +++ b/internal/list-icons.go @@ -52,6 +52,9 @@ const ( ) func InitIconListCache() { + iconsCahceMu.Lock() + defer iconsCahceMu.Unlock() + iconsCache = &Cache{ WalkxCode: make(IconsMap), Selfhst: make(IconsMap),