summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2023-10-06 13:59:51 +0700
committerShulhan <ms@kilabit.info>2023-10-06 13:59:51 +0700
commit3ca05089eccb6c2e738c0a86725bd22695f5b7a7 (patch)
treeecf1e465d9c66cce2b11e65b4275fffa04205bd8
parentc5cc07900c67c2c8b565758dc4a66bc36b8cd7a9 (diff)
downloadgotp-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.go12
-rw-r--r--cmd/gotp/main.go15
-rw-r--r--gotp.go1
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