From 16b5ba05bb5df5d6aaffeda6f5745a4cfdc88952 Mon Sep 17 00:00:00 2001 From: Albert ARIBAUD Date: Thu, 9 Jan 2025 14:16:01 +0100 Subject: [PATCH] chasquid-util: honor --config_dir argument as chasquid does --- cmd/chasquid-util/chasquid-util.go | 22 +++++++++------------- cmd/chasquid-util/dkim.go | 4 ++-- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/cmd/chasquid-util/chasquid-util.go b/cmd/chasquid-util/chasquid-util.go index 7333951..ad4f133 100644 --- a/cmd/chasquid-util/chasquid-util.go +++ b/cmd/chasquid-util/chasquid-util.go @@ -3,6 +3,7 @@ package main import ( + "flag" "bytes" "fmt" "os" @@ -60,10 +61,13 @@ var args map[string]string // Globals, loaded from top-level options. var ( - configDir = "/etc/chasquid" + configDir = flag.String("config_dir", "/etc/chasquid", + "configuration directory") ) func main() { + flag.Parse() + args = parseArgs(usage) if _, ok := args["--help"]; ok { @@ -71,14 +75,6 @@ func main() { return } - // Load globals. - if d, ok := args["--configdir"]; ok { - configDir = d - } - if d, ok := args["-C"]; ok { - configDir = d - } - commands := map[string]func(){ "user-add": userAdd, "user-remove": userRemove, @@ -116,7 +112,7 @@ func userDBForDomain(domain string) string { if domain == "" { domain = args["$2"] } - return configDir + "/domains/" + domain + "/users" + return *configDir + "/domains/" + domain + "/users" } func userDBFromArgs(create bool) (string, string, *userdb.DB) { @@ -254,7 +250,7 @@ func userRemove() { // chasquid-util aliases-resolve
func aliasesResolve() { - conf, err := config.Load(configDir+"/chasquid.conf", "") + conf, err := config.Load(*configDir+"/chasquid.conf", "") if err != nil { Fatalf("Error loading config: %v", err) } @@ -282,7 +278,7 @@ func aliasesResolve() { // chasquid-util print-config func printConfig() { - conf, err := config.Load(configDir+"/chasquid.conf", "") + conf, err := config.Load(*configDir+"/chasquid.conf", "") if err != nil { Fatalf("Error loading config: %v", err) } @@ -292,7 +288,7 @@ func printConfig() { // chasquid-util domaininfo-remove func domaininfoRemove() { - conf, err := config.Load(configDir+"/chasquid.conf", "") + conf, err := config.Load(*configDir+"/chasquid.conf", "") if err != nil { Fatalf("Error loading config: %v", err) } diff --git a/cmd/chasquid-util/dkim.go b/cmd/chasquid-util/dkim.go index 49ad311..c3cfd35 100644 --- a/cmd/chasquid-util/dkim.go +++ b/cmd/chasquid-util/dkim.go @@ -208,7 +208,7 @@ func dkimKeygen() { func keyPathFor(domain, selector string) string { return path.Clean(fmt.Sprintf("%s/domains/%s/dkim:%s.pem", - configDir, domain, selector)) + *configDir, domain, selector)) } func getDomainFromMsg(msg []byte) string { @@ -226,7 +226,7 @@ func getDomainFromMsg(msg []byte) string { } func findSelectorForDomain(domain string) string { - glob := path.Clean(configDir + "/domains/" + domain + "/dkim:*.pem") + glob := path.Clean(*configDir + "/domains/" + domain + "/dkim:*.pem") ms, err := filepath.Glob(glob) if err != nil { Fatalf("Error finding DKIM keys: %v", err)