2025-06-17 23:12:49 -04:00
|
|
|
/*
|
|
|
|
|
Copyright © 2025 Jake jake.young.dev@gmail.com
|
|
|
|
|
*/
|
|
|
|
|
package server
|
|
|
|
|
|
|
|
|
|
import (
|
2025-11-25 20:18:01 -05:00
|
|
|
"encoding/base64"
|
2025-06-17 23:12:49 -04:00
|
|
|
"fmt"
|
|
|
|
|
|
|
|
|
|
"code.jakeyoungdev.com/jake/mctl/database"
|
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
|
)
|
|
|
|
|
|
2025-11-25 20:18:01 -05:00
|
|
|
var decode bool
|
|
|
|
|
|
2025-06-17 23:12:49 -04:00
|
|
|
var viewCmd = &cobra.Command{
|
2025-06-19 17:23:17 -04:00
|
|
|
Use: "view",
|
2025-11-26 13:13:00 -05:00
|
|
|
Aliases: []string{"v"},
|
2025-06-19 17:23:17 -04:00
|
|
|
Example: "mctl server view",
|
|
|
|
|
Short: "view all saved servers",
|
|
|
|
|
SilenceUsage: true,
|
2025-06-17 23:12:49 -04:00
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
db, err := database.New()
|
2025-11-25 20:18:01 -05:00
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
2025-06-17 23:12:49 -04:00
|
|
|
defer db.Close()
|
|
|
|
|
|
2025-11-25 20:18:01 -05:00
|
|
|
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()
|
2025-06-19 17:28:56 -04:00
|
|
|
if err != nil {
|
|
|
|
|
if err.Error() == ErrInit {
|
|
|
|
|
fmt.Println(ErrInitRsp)
|
|
|
|
|
return
|
2025-11-25 20:18:01 -05:00
|
|
|
} else {
|
|
|
|
|
fmt.Println(err)
|
|
|
|
|
return
|
2025-06-19 17:28:56 -04:00
|
|
|
}
|
2025-06-19 17:23:17 -04:00
|
|
|
}
|
2025-06-17 23:12:49 -04:00
|
|
|
|
|
|
|
|
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)
|
2025-11-25 20:18:01 -05:00
|
|
|
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]")
|
|
|
|
|
}
|
2025-06-19 15:05:09 -04:00
|
|
|
fmt.Printf("Default: %t\n", s.Active)
|
2025-06-17 23:12:49 -04:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func init() {
|
2025-11-25 20:18:01 -05:00
|
|
|
viewCmd.Flags().BoolVarP(&decode, "decode", "d", false, "decodes server passwords")
|
2025-06-17 23:12:49 -04:00
|
|
|
ServerCmd.AddCommand(viewCmd)
|
|
|
|
|
}
|