mirror of
https://github.com/caddyserver/caddy.git
synced 2025-11-01 22:32:23 +08:00
caddyfile: Introduce basic linting and fmt check (#3923)
* caddyfile: Introduce basic linting and fmt check This will help encourage people to keep their Caddyfiles tidy. * Remove unrelated tests I am not sure that testing the output of warnings here is quite the right idea; these tests are just for syntax and parsing success.
This commit is contained in:
@ -15,6 +15,7 @@
|
||||
package caddyfile
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
||||
@ -51,11 +52,17 @@ func (a Adapter) Adapt(body []byte, options map[string]interface{}) ([]byte, []c
|
||||
return nil, warnings, err
|
||||
}
|
||||
|
||||
marshalFunc := json.Marshal
|
||||
if options["pretty"] == "true" {
|
||||
marshalFunc = caddyconfig.JSONIndent
|
||||
// lint check: see if input was properly formatted; sometimes messy files files parse
|
||||
// successfully but result in logical errors because the Caddyfile is a bad format
|
||||
// TODO: also perform this check on imported files
|
||||
if !bytes.Equal(Format(body), body) {
|
||||
warnings = append(warnings, caddyconfig.Warning{
|
||||
File: filename,
|
||||
Message: "file is not formatted with 'caddy fmt'",
|
||||
})
|
||||
}
|
||||
result, err := marshalFunc(cfg)
|
||||
|
||||
result, err := json.Marshal(cfg)
|
||||
|
||||
return result, warnings, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user