From 3ca05089eccb6c2e738c0a86725bd22695f5b7a7 Mon Sep 17 00:00:00 2001 From: Shulhan Date: Fri, 6 Oct 2023 13:59:51 +0700 Subject: all: pass the configuration directory parameter to NewCli Previously, the configuration directory initialized inside NewCli. This changes we make the NewCli accept the config directory so we can changes it during testing. --- cli.go | 12 +++--------- cmd/gotp/main.go | 15 ++++++++++++++- gotp.go | 1 - 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/cli.go b/cli.go index 3d1911b..491db69 100644 --- a/cli.go +++ b/cli.go @@ -30,22 +30,16 @@ type Cli struct { } // NewCli create and initialize new CLI for gotp program. -func NewCli() (cli *Cli, err error) { +func NewCli(configDir string) (cli *Cli, err error) { var ( logp = `NewCli` - userConfigDir string - cfgFile string + cfgFile string ) cli = &Cli{} - userConfigDir, err = os.UserConfigDir() - if err != nil { - return nil, fmt.Errorf(`%s: UserConfigDir: %w`, logp, err) - } - - cfgFile = filepath.Join(userConfigDir, configDir, configFile) + cfgFile = filepath.Join(configDir, configFile) cli.cfg, err = newConfig(cfgFile) if err != nil { diff --git a/cmd/gotp/main.go b/cmd/gotp/main.go index c0fbece..886fdbf 100644 --- a/cmd/gotp/main.go +++ b/cmd/gotp/main.go @@ -10,6 +10,7 @@ import ( "fmt" "log" "os" + "path/filepath" "strconv" "strings" @@ -29,6 +30,9 @@ const ( cmdVersion = `version` ) +// defConfigDir default directory name for configuration. +const defConfigDir = `gotp` + func main() { var ( cmd string @@ -99,7 +103,16 @@ func main() { flag.Usage() } - cli, err = gotp.NewCli() + var userConfigDir string + + userConfigDir, err = os.UserConfigDir() + if err != nil { + log.Fatalf(`%s: UserConfigDir: %s`, cmdName, err) + } + + var configDir = filepath.Join(userConfigDir, defConfigDir) + + cli, err = gotp.NewCli(configDir) if err != nil { log.Printf(`%s: %s`, cmdName, err) os.Exit(1) diff --git a/gotp.go b/gotp.go index 51ed63b..2fcbf65 100644 --- a/gotp.go +++ b/gotp.go @@ -17,7 +17,6 @@ const ( ) const ( - configDir = `gotp` configFile = `gotp.conf` defaultHash = HashSHA1 -- cgit v1.3