diff options
| author | Shulhan <ms@kilabit.info> | 2023-10-06 13:59:51 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2023-10-06 13:59:51 +0700 |
| commit | 3ca05089eccb6c2e738c0a86725bd22695f5b7a7 (patch) | |
| tree | ecf1e465d9c66cce2b11e65b4275fffa04205bd8 | |
| parent | c5cc07900c67c2c8b565758dc4a66bc36b8cd7a9 (diff) | |
| download | gotp-3ca05089eccb6c2e738c0a86725bd22695f5b7a7.tar.xz | |
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.
| -rw-r--r-- | cli.go | 12 | ||||
| -rw-r--r-- | cmd/gotp/main.go | 15 | ||||
| -rw-r--r-- | gotp.go | 1 |
3 files changed, 17 insertions, 11 deletions
@@ -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) @@ -17,7 +17,6 @@ const ( ) const ( - configDir = `gotp` configFile = `gotp.conf` defaultHash = HashSHA1 |
