Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var PortForwardCmd = &cobra.Command{ Use: "forward [PORT] [WORKSPACE]", Short: "Forward a port from a workspace to your local machine", GroupID: util.TARGET_GROUP, Args: cobra.RangeArgs(1, 2), Aliases: common.GetAliases("forward"), RunE: func(cmd *cobra.Command, args []string) error { c, err := config.GetConfig() if err != nil { return err } activeProfile, err := c.GetActiveProfile() if err != nil { return err } port, err := strconv.Atoi(args[0]) if err != nil { return err } apiClient, err := apiclient_util.GetApiClient(nil) if err != nil { return err } ctx := context.Background() var workspace *apiclient.WorkspaceDTO var resp *http.Response if len(args) == 2 { workspace, resp, err = apiClient.WorkspaceAPI.FindWorkspace(ctx, args[1]).Execute() if err != nil { return apiclient_util.HandleErrorResponse(resp, err) } } else { workspaceList, resp, err := apiClient.WorkspaceAPI.ListWorkspaces(ctx).Execute() if err != nil { return apiclient_util.HandleErrorResponse(resp, err) } workspace = selection.GetWorkspaceFromPrompt(workspaceList, "Forward") if workspace == nil { return nil } } hostPort, errChan := tailscale.ForwardPort(workspace.Id, uint16(port), activeProfile) if hostPort == nil { if err = <-errChan; err != nil { return err } } else { if *hostPort != uint16(port) { views.RenderInfoMessage(fmt.Sprintf("Port %d already in use.", port)) } views.RenderInfoMessage(fmt.Sprintf("Port available at http://localhost:%d\n", *hostPort)) } if publicPreview { go func() { errChan <- ForwardPublicPort(targetId, workspaceId, *hostPort, uint16(port)) }() } for { err := <-errChan if err != nil { log.Debug(err) } } }, }
Functions ¶
func ForwardPublicPort ¶ added in v0.15.0
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.