Skip to content

Commit

Permalink
add port flag to link command
Browse files Browse the repository at this point in the history
  • Loading branch information
r33drichards committed Nov 3, 2021
1 parent d29b147 commit c7a623b
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 13 deletions.
30 changes: 19 additions & 11 deletions pkg/cmd/link/link.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"os"
"strings"

"github.com/brevdev/brev-cli/pkg/brev_api"
"github.com/brevdev/brev-cli/pkg/config"
Expand All @@ -18,12 +19,13 @@ import (
"github.com/spf13/cobra"
)

var sshLinkLong = "Enable a local ssh tunnel, setup private key auth, and give connection string"

var sshLinkExample = "brev link <ws_name>"
var (
Port string
sshLinkLong = "Enable a local ssh tunnel, setup private key auth, and give connection string"
sshLinkExample = "brev link <ws_name>"
)

func getWorkspaceNames() []string {

activeOrg, err := brev_api.GetActiveOrgContext()
if err != nil {
return nil
Expand All @@ -38,7 +40,7 @@ func getWorkspaceNames() []string {
return nil
}

var wsNames []string;
var wsNames []string
for _, w := range wss {
wsNames = append(wsNames, w.Name)
}
Expand Down Expand Up @@ -77,15 +79,21 @@ func NewCmdLink(t *terminal.Terminal) *cobra.Command {
t.Errprint(err, "")
}
sshPrivateKeyFilePath := files.GetSSHPrivateKeyFilePath()
cmdutil.CheckErr(opts.Complete(cmd, t, args))
if Port == "" {
Port = "2222:22"
}
cmdutil.CheckErr(opts.Complete(cmd, t, args, Port))
t.Printf("SSH Private Key: %s\n", sshPrivateKeyFilePath)
t.Printf(t.Green("\n\t1. Add SSH Key:\n"))
t.Printf(t.Yellow("\t\tssh-add %s\n", sshPrivateKeyFilePath))
t.Printf(t.Green("\t2. Connect to workspace:\n"))
t.Printf(t.Yellow("\t\tssh -p 2222 brev@0.0.0.0\n\n"))
localPort := strings.Split(Port, ":")[0]
t.Printf(t.Yellow("\t\tssh -p %s brev@0.0.0.0\n\n", localPort))
cmdutil.CheckErr(opts.RunPortforward())
},
}
cmd.Flags().StringVarP(&Port, "port", "p", "", "port forward flag describe me better")

return cmd
}

Expand All @@ -105,7 +113,7 @@ func (d WorkspaceResolver) GetWorkspaceByID(id string) (*brev_api.AllWorkspaceDa
return nil, err
}

return &brev_api.AllWorkspaceData{WorkspaceMetaData: *wmeta, Workspace:*w}, nil
return &brev_api.AllWorkspaceData{WorkspaceMetaData: *wmeta, Workspace: *w}, nil
}

// This function will be long and messy, it's entirely built to check random error cases
Expand All @@ -132,7 +140,7 @@ func (d WorkspaceResolver) GetWorkspaceByName(name string) (*brev_api.AllWorkspa
if err != nil {
return nil, err
}
return &brev_api.AllWorkspaceData{WorkspaceMetaData: *wmeta, Workspace:w}, nil
return &brev_api.AllWorkspaceData{WorkspaceMetaData: *wmeta, Workspace: w}, nil
}
}
// if there wasn't a workspace in the org, check all the orgs
Expand All @@ -150,13 +158,13 @@ func (d WorkspaceResolver) GetWorkspaceByName(name string) (*brev_api.AllWorkspa
}

for _, w := range workspaces {
if w.Name==name {
if w.Name == name {
// Assemble full object
wmeta, err := c.GetWorkspaceMetaData(w.ID)
if err != nil {
return nil, err
}
return &brev_api.AllWorkspaceData{WorkspaceMetaData: *wmeta, Workspace:w}, nil
return &brev_api.AllWorkspaceData{WorkspaceMetaData: *wmeta, Workspace: w}, nil
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/portforward/portforward.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func NewPortForwardOptions(portForwardHelpers k8s.K8sClient, workspaceResolver R
}
}

func (o *PortForwardOptions) Complete(cmd *cobra.Command, t *terminal.Terminal, args []string) error {
func (o *PortForwardOptions) Complete(cmd *cobra.Command, t *terminal.Terminal, args []string, Port string) error {
workspaceIDOrName := args[0]

workspace, err := o.ResourceResolver.GetWorkspaceByID(workspaceIDOrName)
Expand All @@ -74,7 +74,7 @@ func (o *PortForwardOptions) Complete(cmd *cobra.Command, t *terminal.Terminal,
}

o.Address = []string{"localhost"}
o.Ports = []string{"2222:22"} // TODO override from args
o.Ports = []string{Port} // TODO override from args

o.StopChannel = make(chan struct{}, 1)
o.ReadyChannel = make(chan struct{})
Expand Down

0 comments on commit c7a623b

Please sign in to comment.