From 60a15699657cef86d1a644c0d13b0d117a818633 Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Mon, 20 May 2024 18:10:43 +0200 Subject: feat: show default configuration with --print-default-config --- internal/config/config.go | 9 +++++++++ searchix.go | 27 +++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index 6837ea7..939d7b1 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -180,6 +180,15 @@ var defaultConfig = Config{ }, } +func GetDefaultConfig() string { + out, err := toml.Marshal(&defaultConfig) + if err != nil { + panic("could not read default configuration") + } + + return string(out) +} + func GetConfig(filename string) (*Config, error) { config := defaultConfig if filename != "" { diff --git a/searchix.go b/searchix.go index c2cd19d..605db55 100644 --- a/searchix.go +++ b/searchix.go @@ -23,10 +23,19 @@ import ( var buildVersion string var ( - configFile = flag.String("config", "config.toml", "config `file` to use") + configFile = flag.String("config", "config.toml", "config `file` to use") + printDefaultConfig = flag.Bool( + "print-default-config", + false, + "print default configuration and exit", + ) liveReload = flag.Bool("live", false, "whether to enable live reloading (development)") - replace = flag.Bool("replace", false, "whether to replace existing database, if it exists") - version = flag.Bool("version", false, "print version information") + replace = flag.Bool( + "replace", + false, + "whether to replace existing database, if it exists", + ) + version = flag.Bool("version", false, "print version information") ) func nextOccurrenceOfLocalTime(t toml.LocalTime) time.Time { @@ -56,7 +65,17 @@ func main() { if buildVersion != config.CommitSHA && buildVersion != config.ShortSHA { fmt.Fprintf(os.Stderr, " %s", config.CommitSHA) } - fmt.Fprint(os.Stderr, "\n") + _, err := fmt.Fprint(os.Stderr, "\n") + if err != nil { + panic("can't write to standard error?!") + } + os.Exit(0) + } + if *printDefaultConfig { + _, err := fmt.Print(config.GetDefaultConfig()) + if err != nil { + panic("can't write to standard output?!") + } os.Exit(0) } -- cgit 1.4.1