diff options
author | Alan Pearce | 2024-05-20 18:10:43 +0200 |
---|---|---|
committer | Alan Pearce | 2024-05-20 18:10:43 +0200 |
commit | 60a15699657cef86d1a644c0d13b0d117a818633 (patch) | |
tree | 491ac1e698958acb0f9f9ad7d51ce7dd06d76900 | |
parent | 6037d5c33e9b98360f61a4fe4f09659d0e3e6160 (diff) | |
download | searchix-60a15699657cef86d1a644c0d13b0d117a818633.tar.lz searchix-60a15699657cef86d1a644c0d13b0d117a818633.tar.zst searchix-60a15699657cef86d1a644c0d13b0d117a818633.zip |
feat: show default configuration with --print-default-config
-rw-r--r-- | internal/config/config.go | 9 | ||||
-rw-r--r-- | 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) } |