UnmarshalCaddyfile implements caddyfile.Unmarshaler.
(d *caddyfile.Dispenser)
| 257 | |
| 258 | // UnmarshalCaddyfile implements caddyfile.Unmarshaler. |
| 259 | func (f *FrankenPHPModule) UnmarshalCaddyfile(d *caddyfile.Dispenser) error { |
| 260 | for d.Next() { |
| 261 | for d.NextBlock(0) { |
| 262 | switch d.Val() { |
| 263 | case "root": |
| 264 | if !d.NextArg() { |
| 265 | return d.ArgErr() |
| 266 | } |
| 267 | f.Root = d.Val() |
| 268 | |
| 269 | case "split": |
| 270 | f.SplitPath = d.RemainingArgs() |
| 271 | if len(f.SplitPath) == 0 { |
| 272 | return d.ArgErr() |
| 273 | } |
| 274 | |
| 275 | case "env": |
| 276 | args := d.RemainingArgs() |
| 277 | if len(args) != 2 { |
| 278 | return d.ArgErr() |
| 279 | } |
| 280 | if f.Env == nil { |
| 281 | f.Env = make(map[string]string) |
| 282 | f.preparedEnv = make(frankenphp.PreparedEnv) |
| 283 | } |
| 284 | f.Env[args[0]] = args[1] |
| 285 | f.preparedEnv[args[0]+"\x00"] = args[1] |
| 286 | |
| 287 | case "resolve_root_symlink": |
| 288 | if !d.NextArg() { |
| 289 | continue |
| 290 | } |
| 291 | v, err := strconv.ParseBool(d.Val()) |
| 292 | if err != nil { |
| 293 | return err |
| 294 | } |
| 295 | if d.NextArg() { |
| 296 | return d.ArgErr() |
| 297 | } |
| 298 | f.ResolveRootSymlink = &v |
| 299 | |
| 300 | case "worker": |
| 301 | wc, err := unmarshalWorker(d) |
| 302 | if err != nil { |
| 303 | return err |
| 304 | } |
| 305 | |
| 306 | f.Workers = append(f.Workers, wc) |
| 307 | |
| 308 | case "hot_reload": |
| 309 | if err := f.unmarshalHotReload(d); err != nil { |
| 310 | return err |
| 311 | } |
| 312 | |
| 313 | default: |
| 314 | return wrongSubDirectiveError("php or php_server", "hot_reload, name, root, split, env, resolve_root_symlink, worker", d.Val()) |
| 315 | } |
| 316 | } |