mirror of
https://github.com/golang/go
synced 2024-11-24 03:50:18 -07:00
787e7b048c
Batch files should use CRLF endings. LF endings mostly work but in some situations they cause random errors like goto commands failing for mysterious reasons. See golang.org/issue/37791 for more information. Next CL triggered one of such bug (a label was not being recognized), so prepare for it by converting to CRLF. This CL also touches all existing batch files to force git to update the line endings (unfortunately, changing .gitattributes only has effect next time the file is checked out or modified). Fixes #37791 Updates #9281 Change-Id: I6f9a114351cb7ac9881914400aa210c930eb8cc1 Reviewed-on: https://go-review.googlesource.com/c/go/+/96495 Run-TryBot: Giovanni Bajo <rasky@develer.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
31 lines
755 B
Go
31 lines
755 B
Go
// run
|
|
|
|
// Copyright 2020 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Check that batch files are maintained as CRLF files (consistent behaviour
|
|
// on all operating systems). See https://github.com/golang/go/issues/37791
|
|
|
|
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os"
|
|
"path/filepath"
|
|
"runtime"
|
|
)
|
|
|
|
func main() {
|
|
batches, _ := filepath.Glob(runtime.GOROOT() + "/src/*.bat")
|
|
for _, bat := range batches {
|
|
body, _ := ioutil.ReadFile(bat)
|
|
if !bytes.Contains(body, []byte("\r\n")) {
|
|
fmt.Printf("Windows batch file %s does not contain CRLF line termination.\nTry running git checkout src/*.bat to fix this.\n", bat)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
}
|