Skip to content

Commit

Permalink
feat: run ftl serve as part of ftl dev
Browse files Browse the repository at this point in the history
  • Loading branch information
wesbillman committed Feb 26, 2024
1 parent 4155488 commit 59713f2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
20 changes: 16 additions & 4 deletions cmd/ftl/cmd_dev.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
"github.com/TBD54566975/ftl/buildengine"
"github.com/TBD54566975/ftl/common/moduleconfig"
"github.com/TBD54566975/ftl/internal/log"
"github.com/TBD54566975/ftl/internal/rpc"
)

type moduleFolderInfo struct {
Expand All @@ -30,6 +31,8 @@ type devCmd struct {
FailureDelay time.Duration `help:"Delay before retrying a failed deploy." default:"500ms"`
ReconnectDelay time.Duration `help:"Delay before attempting to reconnect to FTL." default:"1s"`
ExitAfterDeploy bool `help:"Exit after all modules are deployed successfully." default:"false"`
NoServe bool `help:"Do not start the FTL server." default:"false"`
ServeCmd serveCmd `embed:"" prefix:"serve-"`
}

type moduleMap map[string]*moduleFolderInfo
Expand Down Expand Up @@ -88,17 +91,26 @@ func (m *moduleMap) RebuildDependentModules(ctx context.Context, sch *schema.Mod
}
}

func (d *devCmd) Run(ctx context.Context, client ftlv1connect.ControllerServiceClient) error {
func (d *devCmd) Run(ctx context.Context) error {
logger := log.FromContext(ctx)
logger.Debugf("Watching %s for FTL modules", d.BaseDir)
client := rpc.ClientFromContext[ftlv1connect.ControllerServiceClient](ctx)

ctx, cancel := context.WithCancel(ctx)
defer cancel()

wg, ctx := errgroup.WithContext(ctx)

if !d.NoServe {
wg.Go(func() error {
return d.ServeCmd.Run(ctx)
})
}

logger.Debugf("Watching %s for FTL modules", d.BaseDir)

schemaChanges := make(chan *schema.Module, 64)
modules := make(moduleMap)

wg, ctx := errgroup.WithContext(ctx)

wg.Go(func() error {
return d.watchForSchemaChanges(ctx, client, schemaChanges)
})
Expand Down
4 changes: 3 additions & 1 deletion cmd/ftl/cmd_serve.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"github.com/TBD54566975/ftl/internal/bind"
"github.com/TBD54566975/ftl/internal/exec"
"github.com/TBD54566975/ftl/internal/log"
"github.com/TBD54566975/ftl/internal/rpc"
"github.com/TBD54566975/ftl/internal/slices"
)

Expand All @@ -41,8 +42,9 @@ type serveCmd struct {

const ftlContainerName = "ftl-db-1"

func (s *serveCmd) Run(ctx context.Context, client ftlv1connect.ControllerServiceClient) error {
func (s *serveCmd) Run(ctx context.Context) error {
logger := log.FromContext(ctx)
client := rpc.ClientFromContext[ftlv1connect.ControllerServiceClient](ctx)

if s.Background {
runInBackground(logger)
Expand Down

0 comments on commit 59713f2

Please sign in to comment.