summaryrefslogtreecommitdiff
path: root/sort.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-11-29 15:27:56 -0600
committerJeff Carr <[email protected]>2024-11-29 15:27:56 -0600
commita40f961924f6d9fa897f1c48b1ed5e021ef6f590 (patch)
tree5a87da260310f5a7404199a396826c3db10e47da /sort.go
parenta6035cb90f0b86272dd9878c91b59048044873de (diff)
jam a mutex in the proto-gen-go pb.go file for now
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'sort.go')
-rw-r--r--sort.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/sort.go b/sort.go
index c7e5a07..871632b 100644
--- a/sort.go
+++ b/sort.go
@@ -3,8 +3,52 @@ package main
import (
"fmt"
"io"
+ "os"
+ "strings"
)
+func makeSortfile() {
+ f, _ := os.OpenFile(sortmap["protobase"] + ".sort.pb.go", os.O_WRONLY|os.O_CREATE, 0600)
+
+ header(f, sortmap)
+ syncLock(f, sortmap)
+ iterTop(f, sortmap)
+ iterNext(f, sortmap)
+ // setup Sort() functions
+ if len(argv.Sort) == 0 {
+ // don't do any sorting
+ // setup Append() functions
+ if argv.Append == "" {
+ iterAppend(f, sortmap) // Append() enforce no unique keys
+ } else {
+ iterAppend(f, sortmap) // Append() enforce no unique keys
+ sortmap["append"] = argv.Append
+ iterAppend(f, sortmap) // Append() enforce unique key argv.Append
+ }
+ } else {
+ sortparts := strings.Split(argv.Sort[0], ",")
+ sortmap["sortBy"] = sortparts[0]
+ sortmap["sortKey"] = sortparts[1]
+
+ iterSort(f, sortmap)
+
+ if argv.Append == "" {
+ iterAppend(f, sortmap) // Append() enforce no unique keys
+ } else {
+ iterAppend(f, sortmap) // Append() enforce no unique keys
+ sortmap["append"] = argv.Append
+ iterAppend(f, sortmap) // Append() enforce unique key argv.Append
+ }
+ sortmap["append"] = sortmap["sortKey"]
+ iterAppend(f, sortmap) // Append() enforce unique key argv.Append
+
+ // add ReplaceKey()
+ iterDelete(f, sortmap)
+ iterReplace(f, sortmap)
+ }
+ iterEnd(f, sortmap)
+}
+
func headerComment(w io.Writer) {
fmt.Fprintln(w, "")
fmt.Fprintln(w, "// this file was autogenerated with autogenpb")