forked from leonelquinteros/gotext
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
58 lines (49 loc) · 1.35 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
package main
import (
"flag"
"log"
"strings"
"github.com/donseba/gotext/cli/xgotext/parser"
"github.com/donseba/gotext/cli/xgotext/parser/dir"
pkg_tree "github.com/donseba/gotext/cli/xgotext/parser/pkg-tree"
)
var (
pkgTree = flag.String("pkg-tree", "", "main path: /path/to/go/pkg")
dirName = flag.String("in", "", "input dir: /path/to/go/pkg")
outputDir = flag.String("out", "", "output dir: /path/to/i18n/files")
defaultDomain = flag.String("default", "default", "Name of default domain")
excludeDirs = flag.String("exclude", ".git", "Comma separated list of directories to exclude")
verbose = flag.Bool("v", false, "print currently handled directory")
)
func main() {
flag.Parse()
// Init logger
log.SetFlags(0)
if *pkgTree == "" && *dirName == "" {
log.Fatal("No input directory given")
}
if *pkgTree != "" && *dirName != "" {
log.Fatal("Specify either main or in")
}
if *outputDir == "" {
log.Fatal("No output directory given")
}
data := &parser.DomainMap{
Default: *defaultDomain,
}
if *pkgTree != "" {
err := pkg_tree.ParsePkgTree(*pkgTree, data, *verbose)
if err != nil {
log.Fatal(err)
}
} else {
err := dir.ParseDirRec(*dirName, strings.Split(*excludeDirs, ","), data, *verbose)
if err != nil {
log.Fatal(err)
}
}
err := data.Save(*outputDir)
if err != nil {
log.Fatal(err)
}
}