caddyfile: Normalize line endings before comparing fmt result (#4103)

This commit is contained in:
Francis Lavoie 2021-04-02 13:55:34 -04:00 committed by GitHub
parent eb3955a960
commit 3401f91dbe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -67,14 +67,17 @@ func (a Adapter) Adapt(body []byte, options map[string]interface{}) ([]byte, []c
// is any different from the input; empty warning and false otherwise. // is any different from the input; empty warning and false otherwise.
// TODO: also perform this check on imported files // TODO: also perform this check on imported files
func formattingDifference(filename string, body []byte) (caddyconfig.Warning, bool) { func formattingDifference(filename string, body []byte) (caddyconfig.Warning, bool) {
formatted := Format(body) // replace windows-style newlines to normalize comparison
if bytes.Equal(formatted, body) { normalizedBody := bytes.Replace(body, []byte("\r\n"), []byte("\n"), -1)
formatted := Format(normalizedBody)
if bytes.Equal(formatted, normalizedBody) {
return caddyconfig.Warning{}, false return caddyconfig.Warning{}, false
} }
// find where the difference is // find where the difference is
line := 1 line := 1
for i, ch := range body { for i, ch := range normalizedBody {
if i >= len(formatted) || ch != formatted[i] { if i >= len(formatted) || ch != formatted[i] {
break break
} }