package main import ( "fmt" "os" "strings" ) func (pb *Files) makeNewSortfile(pf *File) error { f, _ := os.OpenFile(pf.Filebase+".newsort.pb.go", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) header(f, pf) pf.syncLock(f) if pf.Bases == nil { return fmt.Errorf("Base was nil. 'message %s {` did not exist", pf.Filebase) } if pf.Base == nil { return fmt.Errorf("Base was nil. 'message %s {` did not exist", pf.Filebase) } pf.Base.iterTop(f) pf.Base.iterNext(f) /* for _, msg := range pf.MsgNames { if msg.DoMutex { for _, key := range msg.Sort { pf.iterTop(f, key) pf.iterNext(f, key) } } else { log.Info("Skipping syncLock() for", msg.Name, "DoMutex = false") } } */ pf.appendUnique(f, nil, sortmap) // Append() enforce no unique keys return nil // iterSortAll(f, sortmap) if argv.Append != "" { sortmap["append"] = string(argv.Append) iterAppend(f, sortmap) // Append() enforce unique key argv.Append } for _, s := range uniqueKeys { // log.Info("found unique key in .proto", s) sortmap["sortBy"] = s sortmap["sortKey"] = s iterSortBy(f, sortmap) sortmap["append"] = sortmap["sortKey"] iterAppend(f, sortmap) // Append() enforce unique key argv.Append iterDelete(f, sortmap) iterReplace(f, sortmap) iterFind(f, sortmap) } for _, s := range argv.Sort { sortparts := strings.Split(s, ",") sortmap["sortBy"] = sortparts[0] sortmap["sortKey"] = sortparts[1] iterSortBy(f, sortmap) sortmap["append"] = sortmap["sortKey"] iterAppend(f, sortmap) // Append() enforce unique key argv.Append iterDelete(f, sortmap) iterReplace(f, sortmap) iterFind(f, sortmap) } iterEnd(f, sortmap) return nil }