mirror of
https://github.com/caddyserver/caddy.git
synced 2026-09-26 04:44:10 +00:00
caddyfile: Implement heredoc support (#5385)
This commit is contained in:
parent
9e6919550b
commit
960150bb03
12 changed files with 397 additions and 135 deletions
|
|
@ -191,15 +191,17 @@ func (m MatchExpression) caddyPlaceholderFunc(lhs, rhs ref.Val) ref.Val {
|
|||
celReq, ok := lhs.(celHTTPRequest)
|
||||
if !ok {
|
||||
return types.NewErr(
|
||||
"invalid request of type '%v' to "+placeholderFuncName+"(request, placeholderVarName)",
|
||||
"invalid request of type '%v' to %s(request, placeholderVarName)",
|
||||
lhs.Type(),
|
||||
placeholderFuncName,
|
||||
)
|
||||
}
|
||||
phStr, ok := rhs.(types.String)
|
||||
if !ok {
|
||||
return types.NewErr(
|
||||
"invalid placeholder variable name of type '%v' to "+placeholderFuncName+"(request, placeholderVarName)",
|
||||
"invalid placeholder variable name of type '%v' to %s(request, placeholderVarName)",
|
||||
rhs.Type(),
|
||||
placeholderFuncName,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -217,25 +217,18 @@ func parsePHPFastCGI(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error
|
|||
return nil, dispenser.ArgErr()
|
||||
}
|
||||
fcgiTransport.Root = dispenser.Val()
|
||||
dispenser.Delete()
|
||||
dispenser.Delete()
|
||||
dispenser.DeleteN(2)
|
||||
|
||||
case "split":
|
||||
extensions = dispenser.RemainingArgs()
|
||||
dispenser.Delete()
|
||||
for range extensions {
|
||||
dispenser.Delete()
|
||||
}
|
||||
dispenser.DeleteN(len(extensions) + 1)
|
||||
if len(extensions) == 0 {
|
||||
return nil, dispenser.ArgErr()
|
||||
}
|
||||
|
||||
case "env":
|
||||
args := dispenser.RemainingArgs()
|
||||
dispenser.Delete()
|
||||
for range args {
|
||||
dispenser.Delete()
|
||||
}
|
||||
dispenser.DeleteN(len(args) + 1)
|
||||
if len(args) != 2 {
|
||||
return nil, dispenser.ArgErr()
|
||||
}
|
||||
|
|
@ -246,10 +239,7 @@ func parsePHPFastCGI(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error
|
|||
|
||||
case "index":
|
||||
args := dispenser.RemainingArgs()
|
||||
dispenser.Delete()
|
||||
for range args {
|
||||
dispenser.Delete()
|
||||
}
|
||||
dispenser.DeleteN(len(args) + 1)
|
||||
if len(args) != 1 {
|
||||
return nil, dispenser.ArgErr()
|
||||
}
|
||||
|
|
@ -257,10 +247,7 @@ func parsePHPFastCGI(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error
|
|||
|
||||
case "try_files":
|
||||
args := dispenser.RemainingArgs()
|
||||
dispenser.Delete()
|
||||
for range args {
|
||||
dispenser.Delete()
|
||||
}
|
||||
dispenser.DeleteN(len(args) + 1)
|
||||
if len(args) < 1 {
|
||||
return nil, dispenser.ArgErr()
|
||||
}
|
||||
|
|
@ -268,10 +255,7 @@ func parsePHPFastCGI(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error
|
|||
|
||||
case "resolve_root_symlink":
|
||||
args := dispenser.RemainingArgs()
|
||||
dispenser.Delete()
|
||||
for range args {
|
||||
dispenser.Delete()
|
||||
}
|
||||
dispenser.DeleteN(len(args) + 1)
|
||||
fcgiTransport.ResolveRootSymlink = true
|
||||
|
||||
case "dial_timeout":
|
||||
|
|
@ -283,8 +267,7 @@ func parsePHPFastCGI(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error
|
|||
return nil, dispenser.Errf("bad timeout value %s: %v", dispenser.Val(), err)
|
||||
}
|
||||
fcgiTransport.DialTimeout = caddy.Duration(dur)
|
||||
dispenser.Delete()
|
||||
dispenser.Delete()
|
||||
dispenser.DeleteN(2)
|
||||
|
||||
case "read_timeout":
|
||||
if !dispenser.NextArg() {
|
||||
|
|
@ -295,8 +278,7 @@ func parsePHPFastCGI(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error
|
|||
return nil, dispenser.Errf("bad timeout value %s: %v", dispenser.Val(), err)
|
||||
}
|
||||
fcgiTransport.ReadTimeout = caddy.Duration(dur)
|
||||
dispenser.Delete()
|
||||
dispenser.Delete()
|
||||
dispenser.DeleteN(2)
|
||||
|
||||
case "write_timeout":
|
||||
if !dispenser.NextArg() {
|
||||
|
|
@ -307,15 +289,11 @@ func parsePHPFastCGI(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error
|
|||
return nil, dispenser.Errf("bad timeout value %s: %v", dispenser.Val(), err)
|
||||
}
|
||||
fcgiTransport.WriteTimeout = caddy.Duration(dur)
|
||||
dispenser.Delete()
|
||||
dispenser.Delete()
|
||||
dispenser.DeleteN(2)
|
||||
|
||||
case "capture_stderr":
|
||||
args := dispenser.RemainingArgs()
|
||||
dispenser.Delete()
|
||||
for range args {
|
||||
dispenser.Delete()
|
||||
}
|
||||
dispenser.DeleteN(len(args) + 1)
|
||||
fcgiTransport.CaptureStderr = true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,8 +129,7 @@ func parseCaddyfile(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error)
|
|||
return nil, dispenser.ArgErr()
|
||||
}
|
||||
rpHandler.Rewrite.URI = dispenser.Val()
|
||||
dispenser.Delete()
|
||||
dispenser.Delete()
|
||||
dispenser.DeleteN(2)
|
||||
|
||||
case "copy_headers":
|
||||
args := dispenser.RemainingArgs()
|
||||
|
|
@ -140,13 +139,11 @@ func parseCaddyfile(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error)
|
|||
args = append(args, dispenser.Val())
|
||||
}
|
||||
|
||||
dispenser.Delete() // directive name
|
||||
// directive name + args
|
||||
dispenser.DeleteN(len(args) + 1)
|
||||
if hadBlock {
|
||||
dispenser.Delete() // opening brace
|
||||
dispenser.Delete() // closing brace
|
||||
}
|
||||
for range args {
|
||||
dispenser.Delete()
|
||||
// opening & closing brace
|
||||
dispenser.DeleteN(2)
|
||||
}
|
||||
|
||||
for _, headerField := range args {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue