1
0
mirror of https://gitea.com/jolheiser/sip synced 2024-11-26 07:33:48 +01:00
sip/cmd/token_remove.go
John Olheiser bb773780df Update Beaver and fix bugs (#6)
Fix CI test

Fix origin names in PR create

Add aliases for new issue/PR and fix issues search

Update beaver and squash some bugs

Signed-off-by: jolheiser <john.olheiser@gmail.com>

Co-authored-by: jolheiser <john.olheiser@gmail.com>
Reviewed-on: https://gitea.com/jolheiser/sip/pulls/6
2020-02-27 02:53:11 +00:00

55 lines
1.2 KiB
Go

package cmd
import (
"fmt"
"gitea.com/jolheiser/sip/modules/config"
"github.com/AlecAivazis/survey/v2"
"github.com/urfave/cli/v2"
"go.jolheiser.com/beaver"
)
var TokensRemove = cli.Command{
Name: "remove",
Aliases: []string{"delete"},
Usage: "Remove access tokens",
Action: doTokenRemove,
}
func doTokenRemove(ctx *cli.Context) error {
opts := make([]string, len(config.Tokens))
for idx, token := range config.Tokens {
opts[idx] = fmt.Sprintf("%s (%s)", token.Name, token.URL)
}
question := &survey.MultiSelect{
Message: "Which would you like to remove?",
Options: opts,
PageSize: 10,
}
answers := make([]string, 0)
if err := survey.AskOne(question, &answers); err != nil {
return err
}
idxs := make([]int, len(answers))
for idx, answer := range answers {
for idy, token := range config.Tokens {
if answer == fmt.Sprintf("%s (%s)", token.Name, token.URL) {
idxs[len(answers)-idx-1] = idy
}
}
}
for _, idx := range idxs {
config.Tokens = append(config.Tokens[:idx], config.Tokens[idx+1:]...)
}
if err := config.Save(); err != nil {
return err
}
beaver.Infof("Removed %d token(s)! Remember to clean up in Gitea if necessary!", len(answers))
return nil
}