-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
69 lines (60 loc) · 1.33 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// checklua lua语法检查工具
// xiaoyu chen
// lua文件支持utf8 但是不支持utf8bom 格式 会报错1行1列错误
// 原生lua不支持utf8bom 这里不做支持
// 支持递归检查子目录
// checklua.exe 检查目录【支持绝对路径和相对路径】
package main
import (
"fmt"
"os"
"path/filepath"
"github.com/yuin/gopher-lua"
)
func main() {
//flag.Parse()
checkdir := "./"
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
checkdir = dir
if len(os.Args) >= 2 {
checkdir = os.Args[1]
}
L1 := lua.NewState()
defer L1.Close()
L1.OpenLibs()
fmt.Println("开始检查lua 配置表!", checkdir)
errcount := 0
errarr := []string{}
err = filepath.Walk(checkdir, func(path string, f os.FileInfo, err error) error {
if f == nil {
return err
}
if f.IsDir() {
return nil
}
if filepath.Ext(path) == ".lua" {
fmt.Println(path)
//判断是否lua文件
_, err := L1.LoadFile(path)
//err := L1.DoFile("hello.lua")
if err != nil {
fmt.Println(err)
errarr = append(errarr, err.Error())
errcount++
}
}
return nil
})
if err != nil {
fmt.Println(err)
}
if errcount > 0 {
fmt.Println("一共", errcount, "个配置表出错!")
for _, e := range errarr {
fmt.Println(e)
}
}
fmt.Println("检查lua 配置表完毕!")
//time.Sleep(2 * time.Second)
}