package host import ( "context" "errors" "path/filepath" "github.com/carlosframework/platform/internal/activator" "github.com/carlosframework/platform/internal/instancefs" "github.com/carlosframework/platform/internal/provision" "github.com/carlosframework/platform/internal/registry" ) func ensureClaimLaunchToken(ctx context.Context, backend *activator.ExecBackend, route registry.Route, authorize func(context.Context, func() error) error) error { if authorize == nil { return backend.EnsureClaimAdminToken(ctx, route, nil) } return backend.EnsureClaimAdminToken(ctx, route, func(call context.Context, effect func() error) error { return authorize(call, func() error { if layout, _ := backend.Layout(route); layout == activator.LayoutNested { dir := provision.InstanceDir(backend.DataDir, route.Host) parent := filepath.Dir(dir) if _, err := instancefs.EnsureDirBeneath(parent, filepath.Base(dir), 0700); err != nil { return err } fd, err := instancefs.OpenDirBeneath(parent, ".") if err != nil { return err } if err = errors.Join(fd.Sync(), fd.Close()); err != nil { return err } } return effect() }) }) }