{"record":{"id":"d47b7fd61bdd4a81","repo":"caddyserver/caddy","slug":"reading-stdin-v","errorCode":null,"errorMessage":"reading stdin: %v","messagePattern":"reading stdin: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/commandfuncs.go","lineNumber":701,"sourceCode":"}\n\nfunc cmdFmt(fl Flags) (int, error) {\n\tconfigFile := fl.Arg(0)\n\tconfigFlag := fl.String(\"config\")\n\tif (len(fl.Args()) > 1) || (configFlag != \"\" && configFile != \"\") {\n\t\treturn caddy.ExitCodeFailedStartup, fmt.Errorf(\"fmt does not support multiple files %s %s\", configFlag, strings.Join(fl.Args(), \" \"))\n\t}\n\tif configFile == \"\" && configFlag == \"\" {\n\t\tconfigFile = \"Caddyfile\"\n\t} else if configFile == \"\" {\n\t\tconfigFile = configFlag\n\t}\n\t// as a special case, read from stdin if the file name is \"-\"\n\tif configFile == \"-\" {\n\t\tinput, err := io.ReadAll(os.Stdin)\n\t\tif err != nil {\n\t\t\treturn caddy.ExitCodeFailedStartup,\n\t\t\t\tfmt.Errorf(\"reading stdin: %v\", err)\n\t\t}\n\t\tfmt.Print(string(caddyfile.Format(input)))\n\t\treturn caddy.ExitCodeSuccess, nil\n\t}\n\n\tinput, err := os.ReadFile(configFile)\n\tif err != nil {\n\t\treturn caddy.ExitCodeFailedStartup,\n\t\t\tfmt.Errorf(\"reading input file: %v\", err)\n\t}\n\n\toutput := caddyfile.Format(input)\n\n\tif fl.Bool(\"overwrite\") {\n\t\tif err := os.WriteFile(configFile, output, 0o600); err != nil { //nolint:gosec // path traversal is not really a thing here, this is either \"Caddyfile\" or admin-controlled\n\t\t\treturn caddy.ExitCodeFailedStartup, fmt.Errorf(\"overwriting formatted file: %v\", err)\n\t\t}\n\t\treturn caddy.ExitCodeSuccess, nil","sourceCodeStart":683,"sourceCodeEnd":719,"githubUrl":"https://github.com/caddyserver/caddy/blob/50e54ee279aa1e504fe218ca49ab6ae16c100410/cmd/commandfuncs.go#L683-L719","documentation":"Error \"reading stdin: %v\" thrown in caddyserver/caddy.","triggerScenarios":"Thrown at cmd/commandfuncs.go:701 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure valid input is piped to stdin, or pass a file path instead of '-' to 'caddy fmt'."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"50e54ee279aa1e504fe218ca49ab6ae16c100410","analyzedAt":"2026-08-15T09:20:21.641Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}