commit 1e8c074b66f81509f9d4c4978aa77223f52591fb
parent e0c3f03e027b207ae4c218b6bda09358ad07c905
Author: Sean Enck <sean@ttypty.com>
Date: Fri, 15 Jul 2022 18:26:02 -0400
cli cleanup
Diffstat:
2 files changed, 27 insertions(+), 4 deletions(-)
diff --git a/cmd/lb/main.go b/cmd/lb/main.go
@@ -93,15 +93,15 @@ func main() {
case "version":
fmt.Printf("version: %s\n", version)
case "insert":
- multi := false
+ options := internal.Arguments{}
idx := 2
switch len(args) {
case 2:
internal.Die("insert missing required arguments", internal.NewLockboxError("entry required"))
case 3:
case 4:
- multi = args[2] == "-m" || args[2] == "-multi"
- if !multi {
+ options = internal.ParseArgs(args[2])
+ if !options.Multi {
internal.Die("multi-line insert must be after 'insert'", internal.NewLockboxError("invalid command"))
}
idx = 3
@@ -125,7 +125,7 @@ func main() {
}
}
var password string
- if !multi && !isPipe {
+ if !options.Multi && !isPipe {
input, err := internal.ConfirmInput()
if err != nil {
internal.Die("password input failed", err)
diff --git a/internal/args.go b/internal/args.go
@@ -0,0 +1,23 @@
+package internal
+
+type (
+ // Arguments options for operations.
+ Arguments struct {
+ Clip bool
+ Once bool
+ Short bool
+ List bool
+ Multi bool
+ }
+)
+
+// ParseArgs parses CLI arguments.
+func ParseArgs(arg string) Arguments {
+ args := Arguments{}
+ args.Clip = arg == "-clip" || arg == "-c"
+ args.Once = arg == "-once"
+ args.Short = arg == "-short"
+ args.List = arg == "-ls" || arg == "-list"
+ args.Multi = arg == "-m" || arg == "-multi"
+ return args
+}