initial refactor to use Cobra

This commit is contained in:
Alvaro Muñoz
2023-04-21 13:43:20 +02:00
parent f589c06ce7
commit d60ef906fe
14 changed files with 1320 additions and 1179 deletions

57
cmd/delete.go Normal file
View File

@@ -0,0 +1,57 @@
/*
Copyright © 2023 sessionNameFlag HERE <EMAIL ADDRESS>
*/
package cmd
import (
"errors"
"fmt"
"gopkg.in/yaml.v3"
"io/ioutil"
"github.com/GitHubSecurityLab/gh-mrva/utils"
"github.com/spf13/cobra"
)
var deleteCmd = &cobra.Command{
Use: "delete",
Short: "Delete a saved session.",
Long: `Delete a saved session.`,
Run: func(cmd *cobra.Command, args []string) {
deleteSession()
},
}
func init() {
rootCmd.AddCommand(deleteCmd)
deleteCmd.Flags().StringVarP(&sessionNameFlag, "session", "s", "", "Session name be deleted")
deleteCmd.MarkFlagRequired("session")
}
func deleteSession() error {
sessions, err := utils.GetSessions()
if err != nil {
return err
}
if sessions == nil {
return errors.New("No sessions found")
}
// delete session if it exists
if _, ok := sessions[sessionNameFlag]; ok {
delete(sessions, sessionNameFlag)
// marshal sessions to yaml
sessionsYaml, err := yaml.Marshal(sessions)
if err != nil {
return err
}
// write sessions to file
err = ioutil.WriteFile(utils.GetSessionsFilePath(), sessionsYaml, 0755)
if err != nil {
return err
}
return nil
}
return errors.New(fmt.Sprintf("Session '%s' does not exist", sessionNameFlag))
}