initializeModule loads the module at the given source ref Returns an error if the module is not found or invalid.
( ctx context.Context, dag *dagger.Client, modRef string, modSrc *dagger.ModuleSource, opts ...dagger.ModuleServeOpts, )
| 54 | // |
| 55 | // Returns an error if the module is not found or invalid. |
| 56 | func initializeModule( |
| 57 | ctx context.Context, |
| 58 | dag *dagger.Client, |
| 59 | modRef string, |
| 60 | modSrc *dagger.ModuleSource, |
| 61 | opts ...dagger.ModuleServeOpts, |
| 62 | ) (rdef *moduleDef, rerr error) { |
| 63 | ctx, span := Tracer().Start(ctx, "load module: "+modRef) |
| 64 | defer telemetry.EndWithCause(span, &rerr) |
| 65 | |
| 66 | findCtx, findSpan := Tracer().Start(ctx, "finding module configuration", telemetry.Encapsulate()) |
| 67 | configExists, err := modSrc.ConfigExists(findCtx) |
| 68 | telemetry.EndWithCause(findSpan, &err) |
| 69 | |
| 70 | if err != nil { |
| 71 | return nil, fmt.Errorf("failed to get configured module: %w", err) |
| 72 | } |
| 73 | if !configExists { |
| 74 | return nil, errModuleNotFound |
| 75 | } |
| 76 | |
| 77 | serveCtx, serveSpan := Tracer().Start(ctx, "initializing module", telemetry.Encapsulate()) |
| 78 | serveOpts := dagger.ModuleServeOpts{IncludeDependencies: true} |
| 79 | for _, o := range opts { |
| 80 | if o.Entrypoint { |
| 81 | serveOpts.Entrypoint = true |
| 82 | } |
| 83 | } |
| 84 | err = modSrc.AsModule().Serve(serveCtx, serveOpts) |
| 85 | telemetry.EndWithCause(serveSpan, &err) |
| 86 | if err != nil { |
| 87 | return nil, fmt.Errorf("failed to serve module: %w", err) |
| 88 | } |
| 89 | |
| 90 | def, err := inspectModule(ctx, dag, modSrc) |
| 91 | if err != nil { |
| 92 | return nil, err |
| 93 | } |
| 94 | |
| 95 | if err := def.loadTypeDefs(ctx, dag); err != nil { |
| 96 | return nil, err |
| 97 | } |
| 98 | |
| 99 | return def, nil |
| 100 | } |
| 101 | |
| 102 | var ErrConfigNotFound = errors.New("dagger.json not found") |
| 103 |
no test coverage detected