package main import ( "os" "strings" ) func makeNewSortfile() { f, _ := os.OpenFile(sortmap["protobase"]+".newsort.pb.go", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) header(f, sortmap) if sortmap["lock"] == "all" { // if the lock is set to 'all' this means the mutex was put in the protoc-gen-go struct } else { syncLock(f, sortmap) } iterTop(f, sortmap) iterNext(f, sortmap) iterAppend(f, sortmap) // Append() enforce no unique keys 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) }