diff --git a/internal/command/dev/dev.go b/internal/command/dev/dev.go index d50d8e8..cf5a84c 100644 --- a/internal/command/dev/dev.go +++ b/internal/command/dev/dev.go @@ -1,6 +1,7 @@ package dev import ( + "github.com/cirruslabs/orchard/internal/config" "github.com/cirruslabs/orchard/internal/controller" "github.com/cirruslabs/orchard/internal/worker" "github.com/cirruslabs/orchard/pkg/client" @@ -75,13 +76,16 @@ func CreateDevControllerAndWorker(devDataDirPath string) (*controller.Controller return nil, nil, err } - devController, err := controller.New(controller.WithDataDir(dataDir), - controller.WithInsecureAuthDisabled(), controller.WithLogger(logger)) + devController, err := controller.New( + controller.WithDataDir(dataDir), + controller.WithInsecureAuthDisabled(), + controller.WithLogger(logger), + ) if err != nil { return nil, nil, err } - defaultClient, err := client.New() + defaultClient, err := client.New(client.WithAddress(devController.Address())) if err != nil { return nil, nil, err } @@ -90,5 +94,20 @@ func CreateDevControllerAndWorker(devDataDirPath string) (*controller.Controller return nil, nil, err } + // set local-dev context as active + configHandle, err := config.NewHandle() + if err != nil { + return nil, nil, err + } + localContext := config.Context{URL: devController.Address()} + err = configHandle.CreateContext("local-dev", localContext, true) + if err != nil { + return nil, nil, err + } + err = configHandle.SetDefaultContext("local-dev") + if err != nil { + return nil, nil, err + } + return devController, devWorker, nil } diff --git a/internal/controller/controller.go b/internal/controller/controller.go index 0407847..386028f 100644 --- a/internal/controller/controller.go +++ b/internal/controller/controller.go @@ -19,6 +19,7 @@ import ( "google.golang.org/grpc/keepalive" "net" "net/http" + "strings" "time" ) @@ -158,3 +159,10 @@ func (controller *Controller) Run(ctx context.Context) error { return nil } + +func (controller *Controller) Address() string { + if strings.HasPrefix(controller.listenAddr, ":") { + return fmt.Sprintf("http://localhost%s", controller.listenAddr) + } + return controller.listenAddr +}