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  }