summaryrefslogtreecommitdiff
path: root/newsort.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-01-09 06:09:09 -0600
committerJeff Carr <[email protected]>2025-01-09 06:09:09 -0600
commitb0ceb9e1b4c51fbe0b51b061dadd34bce793efc3 (patch)
tree44cb090fe433e31b33a42745dd8beef09c58a97d /newsort.go
parent904c5b0c13f67af9032b3e9aa8fa4366498f0db9 (diff)
rename
Diffstat (limited to 'newsort.go')
-rw-r--r--newsort.go58
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)
+}