diff options
| author | Jeff Carr <[email protected]> | 2024-11-29 14:08:33 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-11-29 14:08:33 -0600 |
| commit | 98b366e2df3da8771a4840136d4b671658025c47 (patch) | |
| tree | 9cc89f88b919ec0c060aeec65189a3343ba6ae1f /main.go | |
| parent | 908c9056751fb5ed372af962db7869fb2a7faf6a (diff) | |
better append/sort stuff
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 53 |
1 files changed, 36 insertions, 17 deletions
@@ -9,6 +9,8 @@ import ( "github.com/alexflint/go-arg" "go.wit.com/lib/gui/shell" "go.wit.com/log" + "golang.org/x/text/cases" + "golang.org/x/text/language" ) // sent via -ldflags @@ -37,7 +39,7 @@ func main() { } // you need --upbase and --lobase - if argv.UpBase == "" { + if argv.Proto == "" { pp.WriteHelp(os.Stdout) os.Exit(-1) } @@ -55,18 +57,20 @@ func main() { sortmap := make(map[string]string) sortmap["package"] = packageName sortmap["protobase"] = protobase - sortmap["base"] = argv.LoBase + if argv.LoBase == "" { + // if not set, assumed to be protobase + sortmap["base"] = protobase + } else { + sortmap["base"] = argv.LoBase + } sortmap["lock"] = sortmap["base"] + "sLock" // is nonglobal and plural - sortmap["Base"] = argv.UpBase - sortmap["Bases"] = sortmap["Base"] + "s" - - sortparts := strings.Split(argv.Sort[0], ",") - sortmap["sortBy"] = sortparts[0] - sortmap["sortKey"] = sortparts[1] - - // will keep this key unique if defined - sortmap["append"] = argv.Append - + if argv.UpBase == "" { + sortmap["Base"] = cases.Title(language.English, cases.NoLower).String(protobase) + sortmap["Bases"] = sortmap["Base"] + "s" + } else { + sortmap["Base"] = argv.UpBase + sortmap["Bases"] = sortmap["Base"] + "s" + } if argv.DryRun { for k, v := range sortmap { @@ -81,11 +85,26 @@ func main() { syncLock(f, sortmap) iterTop(f, sortmap) iterNext(f, sortmap) - iterSort(f, sortmap) - iterAppend(f, sortmap) + + // setup Append() functions if argv.Append == "" { - // do nothing. enforce no unique keys + 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 + } + + // setup Sort() functions + if len(argv.Sort) == 0 { + // don't do any sorting } else { + sortparts := strings.Split(argv.Sort[0], ",") + sortmap["sortBy"] = sortparts[0] + sortmap["sortKey"] = sortparts[1] + + iterSort(f, sortmap) + // add ReplaceKey() iterDelete(f, sortmap) iterReplace(f, sortmap) @@ -235,8 +254,8 @@ func iterAppend(w io.Writer, names map[string]string) { if names["append"] == "" { fmt.Fprintln(w, "func (all *"+names["Bases"]+") Append(newP *"+names["Base"]+") bool {") } else { - fmt.Fprintln(w, "func (all *"+names["Bases"]+") Append(newP *"+names["Base"]+") bool { // todo: make unique name here") - // fmt.Fprintln(w, "func (all *"+names["Bases"]+") AppendUnique(newP *"+names["Base"]+") bool {") + // fmt.Fprintln(w, "func (all *"+names["Bases"]+") Append(newP *"+names["Base"]+") bool { // todo: make unique name here") + fmt.Fprintln(w, "func (all *"+names["Bases"]+") AppendUnique(newP *"+names["Base"]+") bool {") } fmt.Fprintln(w, " "+names["lock"]+".Lock()") fmt.Fprintln(w, " defer "+names["lock"]+".Unlock()") |
