redid the docopt

This commit is contained in:
Florian Baumann 2022-01-06 13:43:18 +01:00
parent 305f84f0a9
commit 5516cabd5a
2 changed files with 40 additions and 15 deletions

View File

@ -2,44 +2,66 @@
package main package main
import ( import (
"fmt"
"github.com/docopt/docopt-go" "github.com/docopt/docopt-go"
"github.com/noqqe/serra/src/serra" "github.com/noqqe/serra/src/serra"
) )
//[--count:1 <card>:[mmq/1] <set>:<nil> 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:"<card>"`
SetCode string `docopt:"<setcode>"`
Count int64 `docopt:"--count"`
}
// Main Loop // Main Loop
func main() { func main() {
usage := `Serra usage := `Serra
Usage: Usage:
serra add <card>... serra add <card>... [--count=<number>]
serra remove <card>... serra remove <card>...
serra cards serra cards
serra set <set> serra set <setcode>
serra sets serra sets
serra update serra update
serra stats serra stats
Options: Options:
-h --help Show this screen. -h --help Show this screen.
--version Show version. --count=<number> Count of card to add. [default: 1].
--version Show version.
` `
args, _ := docopt.ParseDoc(usage) args, _ := docopt.ParseDoc(usage)
err := args.Bind(&opts)
if err != nil {
fmt.Println(err)
}
if args["add"].(bool) { if opts.Add {
serra.Add(args["<card>"].([]string)) serra.Add(opts.Card, opts.Count)
} else if args["remove"].(bool) { } else if opts.Remove {
serra.Remove(args["<card>"].([]string)) serra.Remove(opts.Card)
} else if args["cards"].(bool) { } else if opts.Cards {
serra.Cards() serra.Cards()
} else if args["sets"].(bool) { } else if opts.Sets {
serra.Sets() serra.Sets()
} else if args["set"].(bool) { } else if opts.Set {
serra.ShowSet(args["<set>"].(string)) serra.ShowSet(opts.SetCode)
} else if args["update"].(bool) { } else if opts.Update {
serra.Update() serra.Update()
} else if args["stats"].(bool) { } else if opts.Stats {
serra.Stats() serra.Stats()
} }

View File

@ -15,9 +15,11 @@ const (
) )
// Add // Add
func Add(cards []string) { func Add(cards []string, count int64) error {
LogMessage(fmt.Sprintf("Serra %v\n", version), "green") LogMessage(fmt.Sprintf("Serra %v\n", version), "green")
fmt.Println(count)
return nil
client := storage_connect() client := storage_connect()
coll := &Collection{client.Database("serra").Collection("cards")} 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") LogMessage(fmt.Sprintf("\"%s\" (%.2f Eur) added to Collection.", c.Name, c.Prices.Eur), "green")
} }
storage_disconnect(client) storage_disconnect(client)
return nil
} }
// Remove // Remove