@@ -6,21 +6,70 @@ import (
66 "os"
77
88 "github.com/DaoCloud-OpenSource/patch_evaluator"
9+ pflag "github.com/spf13/pflag"
10+ )
11+
12+ var (
13+ kind string // code or doc
14+ )
15+
16+ func init () {
17+ pflag .StringVar (& kind , "kind" , "code" , "code or doc" )
18+ pflag .Parse ()
19+ }
20+
21+ type ValueDefine struct {
22+ LowValue []patch_evaluator.Filterer
23+ NoValue []patch_evaluator.Filterer
24+ }
25+
26+ var (
27+ define = map [string ]ValueDefine {
28+ "code" : {
29+ LowValue : []patch_evaluator.Filterer {
30+ patch_evaluator.FocusSuffixFilterer {".sh" , ".bash" , ".c" , ".go" , ".py" , ".java" , ".cpp" , ".h" , ".hpp" , ".yaml" , ".yml" },
31+ patch_evaluator.PrefixFilterer {"test/" , "tests/" },
32+ patch_evaluator.SuffixFilterer {"_test.go" },
33+ },
34+ NoValue : []patch_evaluator.Filterer {
35+ patch_evaluator.SuffixFilterer {".md" },
36+ patch_evaluator.PrefixFilterer {"vendor/" },
37+ patch_evaluator.ContainsFilterer {"generated" , "testdata" },
38+ patch_evaluator.CommentFilterer {},
39+ patch_evaluator.EmptyLineFilterer {},
40+ },
41+ },
42+ "doc" : {
43+ NoValue : []patch_evaluator.Filterer {
44+ patch_evaluator.PrefixFilterer {
45+ "content/de" , "content/es" , "content/fr" , "content/hi" , "content/id" , "content/it" , "content/ja" , "content/ko" , "content/no" , "content/pl" , "content/pt-br" , "content/ru" , "content/uk" , "content/vi" ,
46+ },
47+ patch_evaluator.CommentFilterer {},
48+ patch_evaluator.EmptyLineFilterer {},
49+ },
50+ },
51+ }
952)
1053
1154func main () {
12- if len (os .Args ) < 2 {
55+ valueDefine , ok := define [kind ]
56+ if ! ok {
57+ log .Fatalf ("kind %q not found" , kind )
58+ }
59+
60+ args := pflag .Args ()
61+ if len (args ) < 1 {
1362 log .Fatal ("need args" )
1463 }
1564
16- patch , err := os .Open (os . Args [ 1 ])
65+ patch , err := os .Open (args [ 0 ])
1766 if err != nil {
1867 log .Fatal (err )
1968 }
2069 defer patch .Close ()
2170
2271 evaluator := patch_evaluator.Evaluator {}
23- files , reasonsLowValue , reasonsNoValue , err := evaluator .Evaluate (patch )
72+ files , reasonsLowValue , reasonsNoValue , err := evaluator .Evaluate (patch , valueDefine . LowValue , valueDefine . NoValue )
2473 if err != nil {
2574 log .Fatal (err )
2675 }
0 commit comments