From 5516cabd5aa6b8444867dbce4ade7cfc1232eb79 Mon Sep 17 00:00:00 2001 From: Florian Baumann Date: Thu, 6 Jan 2022 13:43:18 +0100 Subject: [PATCH] redid the docopt --- serra.go | 50 ++++++++++++++++++++++++++++++++++------------- src/serra/root.go | 5 ++++- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/serra.go b/serra.go index 8b2935b..13f0ff5 100644 --- a/serra.go +++ b/serra.go @@ -2,44 +2,66 @@ package main import ( + "fmt" + "github.com/docopt/docopt-go" "github.com/noqqe/serra/src/serra" ) +//[--count:1 :[mmq/1] : add:true cards:false remove:false set:false sets:false stats:false update:false] + +var opts struct { + Add bool `docopt:"add"` + Remove bool `docopt:"remove"` + Cards bool `docopt:"cards"` + Set bool `docopt:"set"` + Sets bool `docopt:"sets"` + Stats bool `docopt:"stats"` + Update bool `docopt:"update"` + Card []string `docopt:""` + SetCode string `docopt:""` + Count int64 `docopt:"--count"` +} + // Main Loop func main() { usage := `Serra Usage: - serra add ... + serra add ... [--count=] serra remove ... serra cards - serra set + serra set serra sets serra update serra stats Options: - -h --help Show this screen. - --version Show version. + -h --help Show this screen. + --count= Count of card to add. [default: 1]. + --version Show version. ` args, _ := docopt.ParseDoc(usage) + err := args.Bind(&opts) + if err != nil { + fmt.Println(err) + } - if args["add"].(bool) { - serra.Add(args[""].([]string)) - } else if args["remove"].(bool) { - serra.Remove(args[""].([]string)) - } else if args["cards"].(bool) { + if opts.Add { + serra.Add(opts.Card, opts.Count) + } else if opts.Remove { + serra.Remove(opts.Card) + } else if opts.Cards { serra.Cards() - } else if args["sets"].(bool) { + } else if opts.Sets { serra.Sets() - } else if args["set"].(bool) { - serra.ShowSet(args[""].(string)) - } else if args["update"].(bool) { + } else if opts.Set { + serra.ShowSet(opts.SetCode) + } else if opts.Update { serra.Update() - } else if args["stats"].(bool) { + } else if opts.Stats { serra.Stats() } diff --git a/src/serra/root.go b/src/serra/root.go index a839276..df9319f 100644 --- a/src/serra/root.go +++ b/src/serra/root.go @@ -15,9 +15,11 @@ const ( ) // Add -func Add(cards []string) { +func Add(cards []string, count int64) error { LogMessage(fmt.Sprintf("Serra %v\n", version), "green") + fmt.Println(count) + return nil client := storage_connect() coll := &Collection{client.Database("serra").Collection("cards")} @@ -49,6 +51,7 @@ func Add(cards []string) { LogMessage(fmt.Sprintf("\"%s\" (%.2f Eur) added to Collection.", c.Name, c.Prices.Eur), "green") } storage_disconnect(client) + return nil } // Remove