1
0
mirror of https://gitea.com/jolheiser/sip synced 2024-11-22 19:51:58 +01:00
sip/cmd/token_remove.go
jolheiser 039c227402
Move log in/out commands to tokens command
Signed-off-by: jolheiser <john.olheiser@gmail.com>
2020-02-17 20:57:51 -06:00

54 lines
1.2 KiB
Go

package cmd
import (
"fmt"
"gitea.com/jolheiser/beaver"
"gitea.com/jolheiser/sip/modules/config"
"github.com/AlecAivazis/survey/v2"
"github.com/urfave/cli/v2"
)
var TokensRemove = cli.Command{
Name: "remove",
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
}