(fl Flags)
| 550 | } |
| 551 | |
| 552 | func cmdAdaptConfig(fl Flags) (int, error) { |
| 553 | configFlag := fl.String("config") |
| 554 | adapterFlag := fl.String("adapter") |
| 555 | prettyFlag := fl.Bool("pretty") |
| 556 | validateFlag := fl.Bool("validate") |
| 557 | |
| 558 | var err error |
| 559 | configFlag, err = configFileWithRespectToDefault(caddy.Log(), configFlag) |
| 560 | if err != nil { |
| 561 | return caddy.ExitCodeFailedStartup, err |
| 562 | } |
| 563 | if configFlag == "" { |
| 564 | return caddy.ExitCodeFailedStartup, |
| 565 | fmt.Errorf("input file required when there is no Caddyfile in current directory (use --config flag)") |
| 566 | } |
| 567 | |
| 568 | // load all additional envs as soon as possible |
| 569 | err = handleEnvFileFlag(fl) |
| 570 | if err != nil { |
| 571 | return caddy.ExitCodeFailedStartup, err |
| 572 | } |
| 573 | |
| 574 | if adapterFlag == "" { |
| 575 | return caddy.ExitCodeFailedStartup, |
| 576 | fmt.Errorf("adapter name is required (use --adapt flag or leave unspecified for default)") |
| 577 | } |
| 578 | |
| 579 | cfgAdapter := caddyconfig.GetAdapter(adapterFlag) |
| 580 | if cfgAdapter == nil { |
| 581 | return caddy.ExitCodeFailedStartup, |
| 582 | fmt.Errorf("unrecognized config adapter: %s", adapterFlag) |
| 583 | } |
| 584 | |
| 585 | var input []byte |
| 586 | // read from stdin if the file name is "-" |
| 587 | if configFlag == "-" { |
| 588 | input, err = io.ReadAll(os.Stdin) |
| 589 | } else { |
| 590 | input, err = os.ReadFile(configFlag) |
| 591 | } |
| 592 | if err != nil { |
| 593 | return caddy.ExitCodeFailedStartup, |
| 594 | fmt.Errorf("reading input file: %v", err) |
| 595 | } |
| 596 | |
| 597 | opts := map[string]any{"filename": configFlag} |
| 598 | |
| 599 | adaptedConfig, warnings, err := cfgAdapter.Adapt(input, opts) |
| 600 | if err != nil { |
| 601 | return caddy.ExitCodeFailedStartup, err |
| 602 | } |
| 603 | |
| 604 | if prettyFlag { |
| 605 | var prettyBuf bytes.Buffer |
| 606 | err = json.Indent(&prettyBuf, adaptedConfig, "", "\t") |
| 607 | if err != nil { |
| 608 | return caddy.ExitCodeFailedStartup, err |
| 609 | } |
nothing calls this directly
no test coverage detected