Skip to content

Commit 961550c

Browse files
authored
chore: migrate from stdlib flag to pflag for POSIX-style double-dash flags (#6)
1 parent 1533b85 commit 961550c

3 files changed

Lines changed: 13 additions & 7 deletions

File tree

cmd/krakenkey/main.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ import (
44
"bufio"
55
"context"
66
"errors"
7-
"flag"
87
"fmt"
98
"os"
109
"runtime"
1110
"strconv"
1211
"strings"
1312
"time"
1413

14+
flag "github.com/spf13/pflag"
15+
1516
"github.com/krakenkey/cli/internal/api"
1617
"github.com/krakenkey/cli/internal/account"
1718
"github.com/krakenkey/cli/internal/auth"
@@ -49,6 +50,7 @@ func run() int {
4950
// Global flags.
5051
globalFS := flag.NewFlagSet("krakenkey", flag.ContinueOnError)
5152
globalFS.SetOutput(os.Stderr)
53+
globalFS.SetInterspersed(false)
5254
var (
5355
apiURL string
5456
apiKey string
@@ -71,11 +73,9 @@ func run() int {
7173
}
7274

7375
// --version flag.
74-
if v, _ := globalFS.Lookup("version").Value.(interface{ IsBoolFlag() bool }); v != nil {
75-
if globalFS.Lookup("version").Value.String() == "true" {
76-
fmt.Printf("krakenkey-cli %s\n", version)
77-
return 0
78-
}
76+
if versionFlag, _ := globalFS.GetBool("version"); versionFlag {
77+
fmt.Printf("krakenkey-cli %s\n", version)
78+
return 0
7979
}
8080

8181
remaining := globalFS.Args()
@@ -166,8 +166,9 @@ func mustInt(fs *flag.FlagSet, s, name string) (int, bool) {
166166
// stringsFlag accumulates repeated flag values (e.g. --san a --san b).
167167
type stringsFlag []string
168168

169-
func (f *stringsFlag) String() string { return strings.Join(*f, ",") }
169+
func (f *stringsFlag) String() string { return strings.Join(*f, ",") }
170170
func (f *stringsFlag) Set(v string) error { *f = append(*f, v); return nil }
171+
func (f *stringsFlag) Type() string { return "value" }
171172

172173
// triBoolFlag is a *bool flag that is nil when not specified.
173174
type triBoolFlag struct{ val *bool }
@@ -187,6 +188,7 @@ func (f *triBoolFlag) Set(s string) error {
187188
return nil
188189
}
189190
func (f *triBoolFlag) IsBoolFlag() bool { return true }
191+
func (f *triBoolFlag) Type() string { return "bool" }
190192

191193
// ── auth ─────────────────────────────────────────────────────────────────────
192194

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ module github.com/krakenkey/cli
33
go 1.26
44

55
require gopkg.in/yaml.v3 v3.0.1
6+
7+
require github.com/spf13/pflag v1.0.10 // indirect

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
2+
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
13
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
24
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
35
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

0 commit comments

Comments
 (0)