Menus and cmd flags for tokens

Signed-off-by: Ettore Dreucci <ettore.dreucci@gmail.com>
This commit is contained in:
2018-06-19 12:43:25 +02:00
parent cb07e131d9
commit b87c2758e9
4 changed files with 114 additions and 38 deletions

View File

@@ -4,14 +4,18 @@ import (
"errors"
"flag"
"fmt"
"log"
"github.com/dixonwille/wmenu"
)
type stringSlice []string
type flags struct {
redisAddr string
redisPwd string
redisDB int
tokens stringSlice
}
var (
@@ -19,6 +23,12 @@ var (
ErrStdRead = errors.New("couldn't read string from stdin")
)
func (i *stringSlice) Set(value string) error {
*i = append(*i, value)
return nil
}
func getFlags() (flags, error) {
var cmdFlags flags
@@ -30,6 +40,7 @@ func getFlags() (flags, error) {
pwdUsage = "The password of the redis instance"
defaultDB = 0
dbUsage = "The database to be selected after connecting to redis instance"
tokenUsage = "A bot token to be added to the set of tokens"
)
flag.StringVar(&(cmdFlags.redisAddr), "redisAddr", defaultAddr, addrUsage)
@@ -38,14 +49,28 @@ func getFlags() (flags, error) {
flag.StringVar(&(cmdFlags.redisPwd), "p", defaultPwd, pwdUsage+"(shorthand)")
flag.IntVar(&(cmdFlags.redisDB), "redisDB", defaultDB, dbUsage)
flag.IntVar(&(cmdFlags.redisDB), "d", defaultDB, dbUsage+"(shorthand)")
flag.Var(&(cmdFlags.tokens), "token", tokenUsage)
flag.Var(&(cmdFlags.tokens), "t", tokenUsage+"(shorthand")
flag.Parse()
return cmdFlags, nil
}
func startMenu() {
func mainMenu() {
fmt.Println("Welcome in barandaBot! Here you can control the bot(s) options and configurations.")
menu := wmenu.NewMenu("What do you want to do?")
menu.Action(func)
menu.LoopOnInvalid()
menu.Option("Start Bot(s)", nil, true, nil)
menu.Option("Add bot token(s)", nil, false, func(opt wmenu.Opt) error {
return addBotTokens(redisClient, nil)
})
menu.Option("Remove bot token(s)", nil, false, func(opt wmenu.Opt) error {
return removeBotTokens(redisClient)
})
err := menu.Run()
if err != nil {
log.Printf("Error in main menu: %v", err)
}
}