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) pf.appendUnique(f) // 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 }