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) } } } }
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) } }