safing-jess/cmd/cmd-tools.go
2020-01-13 00:15:58 +01:00

53 lines
1.1 KiB
Go

package main
import (
"fmt"
"github.com/spf13/cobra"
"github.com/safing/jess/hashtools"
"github.com/safing/jess/tools"
)
func init() {
rootCmd.AddCommand(toolsCmd)
}
var toolsCmd = &cobra.Command{
Use: "tools",
Short: "list all available tools",
Run: func(cmd *cobra.Command, args []string) {
fmt.Printf("Tools\n\n")
toolTable := [][]string{
{"Name/ID", "Purpose", "Security Level", "Author", "Comment"},
}
for _, tool := range tools.AsList() {
toolTable = append(toolTable, []string{
tool.Info.Name,
tool.Info.FormatPurpose(),
formatToolSecurityLevel(tool),
tool.Info.Author,
tool.Info.Comment,
})
}
for _, line := range formatColumns(toolTable) {
fmt.Println(line)
}
fmt.Printf("\nHashTools\n\n")
hashToolTable := [][]string{
{"Name/ID", "Security Level", "Author", "Comment"},
}
for _, hashTool := range hashtools.AsList() {
hashToolTable = append(hashToolTable, []string{
hashTool.Name,
fmt.Sprintf("%d b/s", hashTool.SecurityLevel),
hashTool.Author,
hashTool.Comment,
})
}
for _, line := range formatColumns(hashToolTable) {
fmt.Println(line)
}
},
}