initial refactor to use Cobra
This commit is contained in:
66
cmd/list.go
Normal file
66
cmd/list.go
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
Copyright © 2023 NAME HERE <EMAIL ADDRESS>
|
||||
|
||||
*/
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"log"
|
||||
"fmt"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/GitHubSecurityLab/gh-mrva/utils"
|
||||
"github.com/GitHubSecurityLab/gh-mrva/models"
|
||||
)
|
||||
|
||||
var listCmd = &cobra.Command{
|
||||
Use: "list",
|
||||
Short: "List saved sessions.",
|
||||
Long: `List saved sessions.`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
listSessions()
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(listCmd)
|
||||
listCmd.Flags().BoolVarP(&jsonFlag, "json", "j", false, "Output in JSON format (default: false)")
|
||||
}
|
||||
|
||||
func listSessions() {
|
||||
sessions, err := utils.GetSessions()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if sessions != nil {
|
||||
if jsonFlag {
|
||||
sessions_list := make([]models.Session, 0, len(sessions))
|
||||
for _, session := range sessions {
|
||||
sessions_list = append(sessions_list, session)
|
||||
}
|
||||
data, err := json.MarshalIndent(sessions_list, "", " ")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
fmt.Println(string(data))
|
||||
// w := &bytes.Buffer{}
|
||||
// jsonpretty.Format(w, bytes.NewReader(data), " ", true)
|
||||
// fmt.Println(w.String())
|
||||
} else {
|
||||
for name, entry := range sessions {
|
||||
fmt.Printf("%s (%v)\n", name, entry.Timestamp)
|
||||
fmt.Printf(" Controller: %s\n", entry.Controller)
|
||||
fmt.Printf(" Language: %s\n", entry.Language)
|
||||
fmt.Printf(" List file: %s\n", entry.ListFile)
|
||||
fmt.Printf(" List: %s\n", entry.List)
|
||||
fmt.Printf(" Repository count: %d\n", entry.RepositoryCount)
|
||||
fmt.Println(" Runs:")
|
||||
for _, run := range entry.Runs {
|
||||
fmt.Printf(" ID: %d\n", run.Id)
|
||||
fmt.Printf(" Query: %s\n", run.Query)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user