46 lines
985 B
Go
46 lines
985 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os"
|
|
"path/filepath"
|
|
"regexp"
|
|
"strings"
|
|
"unicode/utf8"
|
|
)
|
|
|
|
func check(err error) {
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func readLines(path string) []string {
|
|
srcBytes, err := ioutil.ReadFile(path)
|
|
check(err)
|
|
return strings.Split(string(srcBytes), "\n")
|
|
}
|
|
|
|
var commentPat = regexp.MustCompile("\\s*\\/\\/")
|
|
|
|
func main() {
|
|
sourcePaths, err := filepath.Glob("./examples/*/*")
|
|
check(err)
|
|
foundLongFile := false
|
|
for _, sourcePath := range sourcePaths {
|
|
foundLongLine := false
|
|
lines := readLines(sourcePath)
|
|
for i, line := range lines {
|
|
if !foundLongLine && !commentPat.MatchString(line) && (utf8.RuneCountInString(line) > 58) {
|
|
fmt.Printf("measure: %s:%d\n", sourcePath, i+1)
|
|
foundLongLine = true
|
|
foundLongFile = true
|
|
}
|
|
}
|
|
}
|
|
if foundLongFile {
|
|
os.Exit(1)
|
|
}
|
|
}
|