diff --git a/client/mcr.go b/client/mcr.go index 671e755..e0bde01 100644 --- a/client/mcr.go +++ b/client/mcr.go @@ -32,12 +32,12 @@ func New(name string) (*Client, error) { var srv model.Server if name != "" { - srv, err = db.GetServer(name) + srv, err = db.Server(name) if err != nil { return nil, err } } else { - srv, err = db.GetActiveServer() + srv, err = db.ActiveServer() if err != nil { return nil, err } diff --git a/cmd/command/run.go b/cmd/command/run.go index 610eaca..ee8778e 100644 --- a/cmd/command/run.go +++ b/cmd/command/run.go @@ -32,7 +32,7 @@ var runCmd = &cobra.Command{ } defer db.Close() - crun, err := db.GetCmd(cname) + crun, err := db.Cmd(cname) if err != nil { if err.Error() == ErrInit { fmt.Println(ErrInitRsp) diff --git a/cmd/command/view.go b/cmd/command/view.go index 66c1190..08c1257 100644 --- a/cmd/command/view.go +++ b/cmd/command/view.go @@ -20,7 +20,7 @@ var viewCmd = &cobra.Command{ cobra.CheckErr(err) defer db.Close() - ts, err := db.GetAllCmds() + ts, err := db.AllCmds() if err != nil { if err.Error() == ErrInit { fmt.Println(ErrInitRsp) diff --git a/cmd/server/view.go b/cmd/server/view.go index f13cd7a..39584d7 100644 --- a/cmd/server/view.go +++ b/cmd/server/view.go @@ -4,12 +4,15 @@ 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", Example: "mctl server view", @@ -17,29 +20,69 @@ var viewCmd = &cobra.Command{ SilenceUsage: true, Run: func(cmd *cobra.Command, args []string) { db, err := database.New() - cobra.CheckErr(err) + if err != nil { + fmt.Println(err) + return + } defer db.Close() - ts, err := db.GetAllServers() + 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 } } - cobra.CheckErr(err) 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) - fmt.Println("Password: [REDACTED]") + 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) } diff --git a/database/sqlx.go b/database/sqlx.go index 499175a..3bfa645 100644 --- a/database/sqlx.go +++ b/database/sqlx.go @@ -33,15 +33,15 @@ type Database interface { //internals timeout() (context.Context, context.CancelFunc) //command methods - GetCmd(name string) (string, error) - GetAllCmds() ([]model.Command, error) + Cmd(name string) (string, error) + AllCmds() ([]model.Command, error) SaveCmd(name, cmd string) error UpdateCmd(name, cmd string) error DeleteCmd(name string) error //server methods - GetServer(name string) (model.Server, error) - GetActiveServer() (model.Server, error) - GetAllServers() ([]model.Server, error) + Server(name string) (model.Server, error) + ActiveServer() (model.Server, error) + AllServers() ([]model.Server, error) SetActiveServer(name string) error SaveServer(srv model.Server) error UpdateServer(name, password string) error @@ -110,7 +110,7 @@ func (d *database) timeout() (context.Context, context.CancelFunc) { } // gets command using name -func (d *database) GetCmd(name string) (string, error) { +func (d *database) Cmd(name string) (string, error) { query := ` SELECT command @@ -135,7 +135,7 @@ func (d *database) GetCmd(name string) (string, error) { } // gets all saved commands -func (d *database) GetAllCmds() ([]model.Command, error) { +func (d *database) AllCmds() ([]model.Command, error) { query := ` SELECT name, @@ -208,7 +208,7 @@ func (d *database) DeleteCmd(name string) error { return err } -func (d *database) GetServer(name string) (model.Server, error) { +func (d *database) Server(name string) (model.Server, error) { query := ` SELECT name, @@ -235,7 +235,7 @@ func (d *database) GetServer(name string) (model.Server, error) { return s, nil } -func (d *database) GetActiveServer() (model.Server, error) { +func (d *database) ActiveServer() (model.Server, error) { query := ` SELECT name, @@ -259,7 +259,7 @@ func (d *database) GetActiveServer() (model.Server, error) { return s, err } -func (d *database) GetAllServers() ([]model.Server, error) { +func (d *database) AllServers() ([]model.Server, error) { query := ` SELECT name,