コード例 #1
0
ファイル: main.go プロジェクト: cailei/go-xsd
func main() {
	var (
		sd          *xsd.Schema
		err         error
		raw         []byte
		outFilePath string
	)
	flag.Parse()
	if len(*flagSchema) > 0 {
		schemas = strings.Split(*flagSchema, " ")
	}
	if len(*flagBasePath) > 0 {
		xsd.PkgGen.BasePath, xsd.PkgGen.BaseCodePath = *flagBasePath, util.GopathSrc(strings.Split(*flagBasePath, "/")...)
	}
	for _, s := range schemas {
		log.Printf("LOAD:\t%v\n", s)
		if sd, err = xsd.LoadSchema(s, *flagLocalCopy); err != nil {
			log.Printf("\tERROR: %v\n", err)
		} else if sd != nil {
			xsd.PkgGen.ForceParseForDefaults = *flagForceParse || (s == "schemas.opengis.net/kml/2.2.0/ogckml22.xsd") // KML schema uses 0 and 1 as defaults for booleans...
			if outFilePath, err = sd.MakeGoPkgSrcFile(); err == nil {
				log.Printf("MKPKG:\t%v\n", outFilePath)
				if *flagGoFmt {
					if raw, err = exec.Command("gofmt", "-w=true", "-s=true", "-e=true", outFilePath).CombinedOutput(); len(raw) > 0 {
						log.Printf("GOFMT:\t%s\n", string(raw))
					}
					if err != nil {
						log.Printf("GOFMT:\t%v\n", err)
					}
				}
				if *flagGoInst {
					if raw, err = exec.Command("go-buildrun", "-d=__doc.html", "-f="+outFilePath).CombinedOutput(); len(raw) > 0 {
						println(string(raw))
					}
					if err != nil {
						log.Printf("GOINST:\t%v\n", err)
					}
				}
			} else {
				log.Printf("\tERROR:\t%v\n", err)
			}
		}
	}
}
コード例 #2
0
ファイル: main.go プロジェクト: go3d/go-collada
func main() {
	//	pkgreflect -novars=true -norecurs=true -nofuncs=false -gofile=-pkgreflect.go $dir
	runtime.LockOSThread()
	srcDirPath := os.Args[1]
	impPath := strings.Trim(strings.Replace(strings.Replace(strings.ToLower(srcDirPath), strings.ToLower(ugo.GopathSrc()), "", -1), "\\", "/", -1), "/")
	srcFilePath := filepath.Join(srcDirPath, "-pkgreflect.go")
	outDirPath := filepath.Join(srcDirPath, "pkgreflect")
	outFilePath := filepath.Join(outDirPath, "-gen-pkgreflect.go")
	if raw, err := exec.Command("pkgreflect", "-novars=true", "-norecurs=true", "-nofuncs=false", "-gofile=-pkgreflect.go", srcDirPath).CombinedOutput(); err != nil {
		print(err)
		panic(err)
	} else {
		if len(raw) > 0 {
			println(string(raw))
		}
		src := uio.ReadTextFile(srcFilePath, true, "")
		os.Remove(srcFilePath)
		src = strings.Replace(src, "package cdom", "package pkgreflect", -1)
		src = strings.Replace(src, "import \"reflect\"", "import \"reflect\"\nimport cdom \""+impPath+"\"", -1)
		src = strings.Replace(src, "((*", "((*cdom.", -1)
		src = strings.Replace(src, "ValueOf(", "ValueOf(cdom.", -1)
		uio.WriteTextFile(outFilePath, src)
	}
}