From fef1b615856a5e88a13d8522882a1571eb58be6e Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Wed, 11 Sep 2024 15:20:46 +0100 Subject: [PATCH] fs: fix --dump filters not always appearing Before this fix, we initialised the options blocks in a random order. This meant that there was a 50/50 chance whether --dump filters would show the filters or not as it was depending on the "main" block having being read first to set the Dump flags. This initialises the options blocks in a defined order which is alphabetically but with main first which fixes the problem. --- fs/registry.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/fs/registry.go b/fs/registry.go index 937d5c1f0..9d46e2602 100644 --- a/fs/registry.go +++ b/fs/registry.go @@ -531,7 +531,22 @@ func (oi *OptionsInfo) load() error { // their values read from the options, environment variables and // command line parameters. func GlobalOptionsInit() error { - for _, opt := range OptionsRegistry { + var keys []string + for key := range OptionsRegistry { + keys = append(keys, key) + } + sort.Slice(keys, func(i, j int) bool { + // Sort alphabetically, but with "main" first + if keys[i] == "main" { + return true + } + if keys[j] == "main" { + return false + } + return keys[i] < keys[j] + }) + for _, key := range keys { + opt := OptionsRegistry[key] err := opt.load() if err != nil { return err