cmd: Reject multiple configs for fmt command (#6717)
Some checks failed
Tests / test (./cmd/caddy/caddy, ~1.22.3, macos-14, 0, 1.22, mac) (push) Waiting to run
Tests / test (./cmd/caddy/caddy, ~1.23.0, macos-14, 0, 1.23, mac) (push) Waiting to run
Tests / test (./cmd/caddy/caddy.exe, ~1.22.3, windows-latest, True, 1.22, windows) (push) Waiting to run
Tests / test (./cmd/caddy/caddy.exe, ~1.23.0, windows-latest, True, 1.23, windows) (push) Waiting to run
Lint / lint (macos-14, mac) (push) Waiting to run
Lint / lint (windows-latest, windows) (push) Waiting to run
Tests / test (./cmd/caddy/caddy, ~1.22.3, ubuntu-latest, 0, 1.22, linux) (push) Failing after 3m46s
Tests / test (./cmd/caddy/caddy, ~1.23.0, ubuntu-latest, 0, 1.23, linux) (push) Failing after 2m40s
Tests / test (s390x on IBM Z) (push) Has been skipped
Tests / goreleaser-check (push) Has been skipped
Cross-Build / build (~1.22.3, 1.22, aix) (push) Successful in 1m26s
Cross-Build / build (~1.22.3, 1.22, darwin) (push) Successful in 1m26s
Cross-Build / build (~1.22.3, 1.22, dragonfly) (push) Successful in 1m25s
Cross-Build / build (~1.22.3, 1.22, freebsd) (push) Successful in 1m25s
Cross-Build / build (~1.22.3, 1.22, illumos) (push) Successful in 1m24s
Cross-Build / build (~1.22.3, 1.22, linux) (push) Successful in 1m30s
Cross-Build / build (~1.22.3, 1.22, netbsd) (push) Successful in 1m24s
Cross-Build / build (~1.22.3, 1.22, openbsd) (push) Successful in 1m24s
Cross-Build / build (~1.22.3, 1.22, solaris) (push) Successful in 1m26s
Cross-Build / build (~1.22.3, 1.22, windows) (push) Successful in 3m6s
Cross-Build / build (~1.23.0, 1.23, aix) (push) Successful in 3m16s
Cross-Build / build (~1.23.0, 1.23, darwin) (push) Successful in 1m57s
Cross-Build / build (~1.23.0, 1.23, dragonfly) (push) Successful in 2m1s
Cross-Build / build (~1.23.0, 1.23, freebsd) (push) Successful in 1m52s
Cross-Build / build (~1.23.0, 1.23, illumos) (push) Successful in 3m21s
Cross-Build / build (~1.23.0, 1.23, linux) (push) Successful in 1m17s
Cross-Build / build (~1.23.0, 1.23, netbsd) (push) Successful in 1m15s
Cross-Build / build (~1.23.0, 1.23, openbsd) (push) Successful in 1m14s
Cross-Build / build (~1.23.0, 1.23, solaris) (push) Successful in 1m14s
Cross-Build / build (~1.23.0, 1.23, windows) (push) Successful in 1m16s
Lint / lint (ubuntu-latest, linux) (push) Successful in 3m34s
Lint / govulncheck (push) Successful in 1m12s

This commit is contained in:
Aziz Rmadi 2024-12-04 06:43:52 -06:00 committed by GitHub
parent efd9251ad3
commit fb72793269
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 3 deletions

View File

@ -560,10 +560,15 @@ func cmdValidateConfig(fl Flags) (int, error) {
func cmdFmt(fl Flags) (int, error) { func cmdFmt(fl Flags) (int, error) {
configFile := fl.Arg(0) configFile := fl.Arg(0)
if configFile == "" { configFlag := fl.String("config")
configFile = "Caddyfile" if (len(fl.Args()) > 1) || (configFlag != "" && configFile != "") {
return caddy.ExitCodeFailedStartup, fmt.Errorf("fmt does not support multiple files %s %s", configFlag, strings.Join(fl.Args(), " "))
}
if configFile == "" && configFlag == "" {
configFile = "Caddyfile"
} else if configFile == "" {
configFile = configFlag
} }
// as a special case, read from stdin if the file name is "-" // as a special case, read from stdin if the file name is "-"
if configFile == "-" { if configFile == "-" {
input, err := io.ReadAll(os.Stdin) input, err := io.ReadAll(os.Stdin)

View File

@ -388,6 +388,7 @@ When reading from stdin, the --overwrite flag has no effect: the result
is always printed to stdout. is always printed to stdout.
`, `,
CobraFunc: func(cmd *cobra.Command) { CobraFunc: func(cmd *cobra.Command) {
cmd.Flags().StringP("config", "c", "", "Configuration file")
cmd.Flags().BoolP("overwrite", "w", false, "Overwrite the input file with the results") cmd.Flags().BoolP("overwrite", "w", false, "Overwrite the input file with the results")
cmd.Flags().BoolP("diff", "d", false, "Print the differences between the input file and the formatted output") cmd.Flags().BoolP("diff", "d", false, "Print the differences between the input file and the formatted output")
cmd.RunE = WrapCommandFuncForCobra(cmdFmt) cmd.RunE = WrapCommandFuncForCobra(cmdFmt)