github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/jade/cmd.go (about) 1 package jadecmd 2 3 import ( 4 "log" 5 "os" 6 "path/filepath" 7 8 "github.com/Joker/jade" 9 ) 10 11 func reset() { 12 dict = make(map[string]string) 13 lib_name = "" 14 outdir = "" 15 basedir = "" 16 pkg_name = "views" 17 stdlib = false 18 stdbuf = false 19 writer = false 20 inline = false 21 format = false 22 ns_files = make(map[string]bool) 23 } 24 25 type CompileConfig struct { 26 OutDir string 27 BaseDir string 28 PkgName string 29 Stdlib bool 30 Stdbuf bool 31 Writer bool 32 Inline bool 33 Format bool 34 } 35 36 func CompilePaths(jadePaths []string, config CompileConfig) { 37 reset() 38 outdir = config.OutDir 39 basedir = config.BaseDir 40 pkg_name = config.PkgName 41 stdlib = config.Stdlib 42 stdbuf = config.Stdbuf 43 writer = config.Writer 44 inline = config.Inline 45 format = config.Format 46 47 jade.Config(golang) 48 49 if _, err := os.Stat(outdir); os.IsNotExist(err) { 50 os.MkdirAll(outdir, 0755) 51 } 52 outdir, _ = filepath.Abs(outdir) 53 54 if _, err := os.Stat(basedir); !os.IsNotExist(err) && basedir != "./" { 55 os.Chdir(basedir) 56 } 57 58 for _, jadePath := range jadePaths { 59 stat, err := os.Stat(jadePath) 60 if err != nil { 61 log.Fatalln(err) 62 } 63 64 absPath, _ := filepath.Abs(jadePath) 65 if stat.IsDir() { 66 genDir(absPath, outdir, pkg_name) 67 } else { 68 genFile(absPath, outdir, pkg_name) 69 } 70 if !stdlib { 71 makeJfile(stdbuf) 72 } 73 } 74 }