Generate the json schema for a dagger config file Currently supported: "dagger.json", "engine.json"
(filename string)
| 360 | // Generate the json schema for a dagger config file |
| 361 | // Currently supported: "dagger.json", "engine.json" |
| 362 | func (dev *EngineDev) ConfigSchema(filename string) *dagger.File { |
| 363 | schemaFilename := strings.TrimSuffix(filename, ".json") + ".schema.json" |
| 364 | // This tool has runtime dependencies on the engine source code itself |
| 365 | return dag.Go(dagger.GoOpts{Source: dev.Source}). |
| 366 | Env(). |
| 367 | WithExec( |
| 368 | []string{"go", "run", "./cmd/json-schema", filename}, |
| 369 | dagger.ContainerWithExecOpts{RedirectStdout: schemaFilename}, |
| 370 | ). |
| 371 | File(schemaFilename) |
| 372 | } |
| 373 | |
| 374 | // Generate any engine-related files |
| 375 | // Note: this is codegen of the 'go generate' variety, not 'dagger develop' |