Skip to content

Commit 3cfa809

Browse files
fix(pro): install proxy provider if remote version < 0.7.0
1 parent de53884 commit 3cfa809

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

cmd/pro/login.go

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"net/url"
77
"strings"
88

9+
"github.com/blang/semver"
910
proflags "github.com/loft-sh/devpod/cmd/pro/flags"
1011
providercmd "github.com/loft-sh/devpod/cmd/provider"
1112
"github.com/loft-sh/devpod/pkg/config"
@@ -34,10 +35,9 @@ type LoginCmd struct {
3435

3536
Options []string
3637

37-
Login bool
38-
Use bool
39-
ForceBrowser bool
40-
ProxyProvider bool
38+
Login bool
39+
Use bool
40+
ForceBrowser bool
4141
}
4242

4343
// NewLoginCmd creates a new command
@@ -64,7 +64,6 @@ func NewLoginCmd(flags *proflags.GlobalFlags) *cobra.Command {
6464
loginCmd.Flags().StringVar(&cmd.Version, "version", "", "The version to use for the DevPod provider")
6565
loginCmd.Flags().StringArrayVarP(&cmd.Options, "option", "o", []string{}, "Provider option in the form KEY=VALUE")
6666
loginCmd.Flags().BoolVar(&cmd.ForceBrowser, "force-browser", false, "Force login through browser")
67-
loginCmd.Flags().BoolVar(&cmd.ProxyProvider, "proxy-provider", false, "Install proxy provider instead of built-in daemon provider")
6867

6968
loginCmd.Flags().StringVar(&cmd.ProviderSource, "provider-source", "", "The source of the provider")
7069
_ = loginCmd.Flags().MarkHidden("provider-source")
@@ -143,9 +142,18 @@ func (cmd *LoginCmd) Run(ctx context.Context, fullURL string, log log.Logger) er
143142
CreationTimestamp: types.Now(),
144143
}
145144

146-
// proxy providers are deprecated and shouldn't be used
147-
// unless explicitly requiring one
148-
if cmd.ProxyProvider {
145+
remoteVersion, err := platform.GetDevPodVersion(fullURL)
146+
if err != nil {
147+
return err
148+
}
149+
rv, err := semver.Parse(strings.TrimPrefix(remoteVersion, "v"))
150+
if err != nil {
151+
return fmt.Errorf("invalid version %s: %w", remoteVersion, err)
152+
}
153+
if rv.LT(semver.Version{Major: 0, Minor: 7, Patch: 0}) {
154+
log.Debug("remote version < 0.7.0, installing proxy provider")
155+
// proxy providers are deprecated and shouldn't be used
156+
// unless explicitly the server version is below 0.7.0
149157
err = cmd.addLoftProvider(devPodConfig, fullURL, log)
150158
if err != nil {
151159
return err

0 commit comments

Comments
 (0)