Commit e9b9432d authored by Matthew Holt's avatar Matthew Holt

"-conf stdin" required to pipe in Caddyfile

Some programs (Node.js, supervisor, etc.) open a stdin pipe by default and don't use it, causing Caddy to block. It is their error, but we have to try to accommodate unfortunately. To fix this more universally, parent must explicitly set -conf to "stdin" to read from pipe.
parent c31e86db
......@@ -117,25 +117,17 @@ func mustLogFatal(args ...interface{}) {
}
func loadCaddyfile() (caddy.Input, error) {
// First try stdin pipe
cdyfile, err := caddy.CaddyfileFromPipe(os.Stdin)
if err != nil {
return nil, err
}
if cdyfile != nil {
// it is an error if -conf is also specified because, which to use?
if conf != "" {
return nil, errors.New("load: can't choose between stdin pipe and -conf flag")
// Try -conf flag
if conf != "" {
if conf == "stdin" {
return caddy.CaddyfileFromPipe(os.Stdin)
}
return cdyfile, err
}
// -conf flag
if conf != "" {
contents, err := ioutil.ReadFile(conf)
if err != nil {
return nil, err
}
return caddy.CaddyfileInput{
Contents: contents,
Filepath: conf,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment