Pipe and -conf flag together are an error (#315)

This commit is contained in:
Matthew Holt 2015-11-06 13:22:22 -07:00
parent cf5aa1bed1
commit 18e9aa4d57
2 changed files with 14 additions and 9 deletions

View file

@ -282,15 +282,7 @@ func LoadCaddyfile(loader func() (Input, error)) (cdyfile Input, err error) {
cdyfile = loadedGob.Caddyfile cdyfile = loadedGob.Caddyfile
} }
// Otherwise, we first try to get from stdin pipe // Try user's loader
if cdyfile == nil {
cdyfile, err = CaddyfileFromPipe(os.Stdin)
if err != nil {
return nil, err
}
}
// No piped input, so try the user's loader instead
if cdyfile == nil && loader != nil { if cdyfile == nil && loader != nil {
cdyfile, err = loader() cdyfile, err = loader()
} }

13
main.go
View file

@ -117,6 +117,19 @@ func mustLogFatal(args ...interface{}) {
} }
func loadCaddyfile() (caddy.Input, error) { 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")
}
return cdyfile, err
}
// -conf flag // -conf flag
if conf != "" { if conf != "" {
contents, err := ioutil.ReadFile(conf) contents, err := ioutil.ReadFile(conf)