diff options
| author | Jeff Carr <[email protected]> | 2025-01-09 06:09:09 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-01-09 06:09:09 -0600 |
| commit | b0ceb9e1b4c51fbe0b51b061dadd34bce793efc3 (patch) | |
| tree | 44cb090fe433e31b33a42745dd8beef09c58a97d /newsort.go | |
| parent | 904c5b0c13f67af9032b3e9aa8fa4366498f0db9 (diff) | |
rename
Diffstat (limited to 'newsort.go')
| -rw-r--r-- | newsort.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/newsort.go b/newsort.go new file mode 100644 index 0000000..5b6084b --- /dev/null +++ b/newsort.go @@ -0,0 +1,58 @@ +package main + +import ( + "os" + "strings" +) + +func (pb *Files) makeNewSortfile(pf *File) { + f, _ := os.OpenFile(pf.Filebase+".newsort.pb.go", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) + + header(f, pf) + + 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) +} |
