func main() { runtime.GOMAXPROCS(runtime.NumCPU()) flags := datas.NewFlags() flag.Parse() ds, ok := flags.CreateDataStore() if !ok || *inputID == "" || *outputID == "" { flag.Usage() return } defer ds.Close() err := d.Try(func() { if util.MaybeStartCPUProfile() { defer util.StopCPUProfile() } inputDataset := dataset.NewDataset(ds, *inputID) outputDataset := dataset.NewDataset(ds, *outputID) input := inputDataset.Head().Value().(ListOfRefOfMapOfStringToValue) output := getIndex(input, ds) _, err := outputDataset.Commit(output) d.Exp.NoError(err) util.MaybeWriteMemProfile() }) if err != nil { log.Fatal(err) } }
func main() { flags := datas.NewFlags() flag.Parse() ds, ok := flags.CreateDataStore() if !ok { ds = datas.NewDataStore(chunks.NewMemoryStore()) } defer ds.Close() if *pkgDSFlag != "" { if !ok { log.Print("Package dataset provided, but DataStore could not be opened.") flag.Usage() return } } else { log.Print("No package dataset provided; will be unable to process imports.") *pkgDSFlag = "default" } if *outputLang != goExt && *outputLang != jsExt { log.Print("Invalid out-lang provided.") flag.Usage() return } pkgDS := dataset.NewDataset(ds, *pkgDSFlag) // Ensure that, if pkgDS has stuff in it, its head is a SetOfRefOfPackage. if h, ok := pkgDS.MaybeHead(); ok { d.Chk.IsType(types.SetOfRefOfPackage{}, h.Value()) } localPkgs := refSet{} outDir, err := filepath.Abs(*outDirFlag) d.Chk.NoError(err, "Could not canonicalize -out-dir: %v", err) packageName := "" if *outputLang == goExt { packageName = getGoPackageName(outDir) } if *inFlag != "" { out := getOutFileName(filepath.Base(*inFlag)) p := parsePackageFile(packageName, *inFlag, pkgDS) localPkgs[p.Ref()] = true generate(packageName, *inFlag, filepath.Join(outDir, out), outDir, map[string]bool{}, p, localPkgs, pkgDS) return } // Generate code from all .noms file in the current directory nomsFiles, err := filepath.Glob("*" + ext) d.Chk.NoError(err) written := map[string]bool{} packages := map[string]pkg.Parsed{} for _, inFile := range nomsFiles { p := parsePackageFile(packageName, inFile, pkgDS) localPkgs[p.Ref()] = true packages[inFile] = p } // Sort to have deterministic output. keys := make([]string, 0, len(packages)) sort.Strings(keys) for inFile := range packages { keys = append(keys, inFile) } for _, inFile := range keys { p := packages[inFile] pkgDS = generate(packageName, inFile, filepath.Join(outDir, getOutFileName(inFile)), outDir, written, p, localPkgs, pkgDS) } }
"os" "runtime" "sync/atomic" "time" "github.com/attic-labs/noms/clients/common" "github.com/attic-labs/noms/d" "github.com/attic-labs/noms/datas" "github.com/attic-labs/noms/dataset" "github.com/attic-labs/noms/ref" "github.com/attic-labs/noms/types" "github.com/attic-labs/noms/walk" ) var ( datasFlags = datas.NewFlags() inputRefStr = flag.String("input-ref", "", "ref to list containing nodes") outputDs = flag.String("output-ds", "", "dataset to store data in.") quietFlag = flag.Bool("quiet", false, "suppress printing of progress statements") ) func main() { runtime.GOMAXPROCS(runtime.NumCPU()) flag.Usage = func() { fmt.Printf("Usage: %s -ldb=/path/to/db -input-ref=sha1-xyz -output-ds=quadtree\n\n", os.Args[0]) flag.PrintDefaults() } flag.Parse() start := time.Now()