Files
mctl/cmd/server/view.go

90 lines
1.8 KiB
Go
Raw Normal View History

/*
Copyright © 2025 Jake jake.young.dev@gmail.com
*/
package server
import (
"encoding/base64"
"fmt"
"code.jakeyoungdev.com/jake/mctl/database"
"github.com/spf13/cobra"
)
var decode bool
var viewCmd = &cobra.Command{
Use: "view",
2025-11-26 13:13:00 -05:00
Aliases: []string{"v"},
Example: "mctl server view",
Short: "view all saved servers",
SilenceUsage: true,
Run: func(cmd *cobra.Command, args []string) {
db, err := database.New()
if err != nil {
fmt.Println(err)
return
}
defer db.Close()
if len(args) > 0 {
srvName := args[0]
s, err := db.Server(srvName)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("-----")
fmt.Printf("Name: %s\n", s.Name)
fmt.Printf("Address: %s\n", s.Server)
fmt.Printf("Port: %d\n", s.Port)
if decode {
pwb, err := base64.StdEncoding.DecodeString(s.Password)
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("Password: %s\n", string(pwb))
} else {
fmt.Println("Password: [REDACTED]")
}
fmt.Printf("Default: %t\n", s.Active)
return
}
ts, err := db.AllServers()
if err != nil {
if err.Error() == ErrInit {
fmt.Println(ErrInitRsp)
return
} else {
fmt.Println(err)
return
}
}
for _, s := range ts {
fmt.Println("-----")
fmt.Printf("Name: %s\n", s.Name)
fmt.Printf("Address: %s\n", s.Server)
fmt.Printf("Port: %d\n", s.Port)
if decode {
pwb, err := base64.StdEncoding.DecodeString(s.Password)
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("Password: %s\n", string(pwb))
} else {
fmt.Println("Password: [REDACTED]")
}
fmt.Printf("Default: %t\n", s.Active)
}
},
}
func init() {
viewCmd.Flags().BoolVarP(&decode, "decode", "d", false, "decodes server passwords")
ServerCmd.AddCommand(viewCmd)
}