diff options
| author | Jeff Carr <[email protected]> | 2024-11-29 15:27:56 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-11-29 15:27:56 -0600 |
| commit | a40f961924f6d9fa897f1c48b1ed5e021ef6f590 (patch) | |
| tree | 5a87da260310f5a7404199a396826c3db10e47da /sort.go | |
| parent | a6035cb90f0b86272dd9878c91b59048044873de (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.go | 44 |
1 files changed, 44 insertions, 0 deletions
@@ -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") |
