diff --git a/generateGui.go b/generateGui.go index 3ff5d6a..c178cf0 100644 --- a/generateGui.go +++ b/generateGui.go @@ -53,6 +53,7 @@ func (pb *Files) makeGuiFile(pf *File) error { log.Printf("Adding %s\n", funcdef) */ } + guiUpdate(newf, pf.Bases.Name, pf.Bases.Name) fmt.Fprintf(newf, "\n") fmt.Fprintf(newf, "// END GUI\n") @@ -265,16 +266,6 @@ func guiAddStringFunc(w io.Writer, FRUITS string, FRUIT string, BRAND string) { fmt.Fprintln(w, " })") fmt.Fprintln(w, " return sf") fmt.Fprintln(w, "}") - /* - fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddMemory() {") - fmt.Fprintln(w, " t.pb.Order = append(t.pb.Order, \"Memory\")") - fmt.Fprintln(w, "}") - fmt.Fprintln(w, "") - fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddCpus() {") - fmt.Fprintln(w, " t.pb.Order = append(t.pb.Order, \"Cpus\")") - fmt.Fprintln(w, "}") - fmt.Fprintln(w, "") - */ } func guiAddIntFunc(w io.Writer, FRUITS string, FRUIT string, BRAND string) { @@ -297,3 +288,107 @@ func guiAddIntFunc(w io.Writer, FRUITS string, FRUIT string, BRAND string) { fmt.Fprintln(w, "") */ } + +func guiUpdate(w io.Writer, FRUITS string, FRUIT string) { + fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) NewUuid() {") + fmt.Fprintln(w, " mt.pb.Uuid = uuid.New().String()") + fmt.Fprintln(w, "}") + fmt.Fprintln(w, "") + + fmt.Fprintln(w, "// START TABLE UPDATE") + fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) Update() {") + fmt.Fprintln(w, " // log.Info(\"now what?\")") + fmt.Fprintln(w, " for _, name := range mt.pb.Order {") + fmt.Fprintln(w, " // log.Info(\""+FRUIT+"pb: trying to update row()\", name)") + fmt.Fprintln(w, " if mt.updateStringFunc(name) {") + fmt.Fprintln(w, " continue") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " if mt.updateTimeFunc(name) {") + fmt.Fprintln(w, " continue") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " /*") + fmt.Fprintln(w, " if mt.updateIntFunc(name) {") + fmt.Fprintln(w, " continue") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " */") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " // mt.dumpStringFunc(\"Hostname\")") + fmt.Fprintln(w, " mt.parent.UpdateTable(mt.pb)") + fmt.Fprintln(w, "}") + fmt.Fprintln(w, "") + fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) dumpStringFunc(name string) {") + fmt.Fprintln(w, " for i, r := range mt.pb.StringRows {") + fmt.Fprintln(w, " // log.Info(\"could use\", i, r.Header.Name, \"for name =\", name)") + fmt.Fprintln(w, " if r.Header.Name == name {") + fmt.Fprintln(w, " log.Info(\"dump Strings row\", i, r.Header.Name, r.Vals)") + fmt.Fprintln(w, " break") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, "}") + fmt.Fprintln(w, "") + fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) updateStringFunc(name string) bool {") + fmt.Fprintln(w, " // log.Info(\"LOOKING FOR STRING row\", name)") + fmt.Fprintln(w, " var found *guipb.StringRow") + fmt.Fprintln(w, " for _, r := range mt.pb.StringRows {") + fmt.Fprintln(w, " // log.Info(\"could use\", i, r.Header.Name, \"for name =\", name)") + fmt.Fprintln(w, " if r.Header.Name == name {") + fmt.Fprintln(w, " // log.Info(\"found row\", i, r.Header.Name)") + fmt.Fprintln(w, " found = r") + fmt.Fprintln(w, " break") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " if found == nil {") + fmt.Fprintln(w, " log.Info(\"did not find string row\", name)") + fmt.Fprintln(w, " return false") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " for _, sf := range mt.stringFuncs {") + fmt.Fprintln(w, " if sf.title != name {") + fmt.Fprintln(w, " continue") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " // log.Info(\""+FRUIT+"pb: starting\", name, found.Vals)") + fmt.Fprintln(w, " for i, _ := range found.Vals {") + fmt.Fprintln(w, " tmp := sf.f(mt.x."+FRUITS+"[i])") + fmt.Fprintln(w, " if tmp == \"www.wit.com\" {") + fmt.Fprintln(w, " log.Info(\"virtpb: FOUND WWW\", i)") + fmt.Fprintln(w, " tmp = \"new.www\"") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " found.Vals[i] = tmp") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " // log.Info(\""+FRUIT+"pb: ending\", name, found.Vals)") + fmt.Fprintln(w, " return true") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " return false") + fmt.Fprintln(w, "}") + fmt.Fprintln(w, "") + fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) updateTimeFunc(name string) bool {") + fmt.Fprintln(w, " log.Info(\"LOOKING FOR TIME row\", name)") + fmt.Fprintln(w, " var found *guipb.TimeRow") + fmt.Fprintln(w, " for i, r := range mt.pb.TimeRows {") + fmt.Fprintln(w, " // log.Info(\"could use\", i, r.Header.Name, \"for name =\", name)") + fmt.Fprintln(w, " if r.Header.Name == name {") + fmt.Fprintln(w, " log.Info(\"found row\", i, r.Header.Name)") + fmt.Fprintln(w, " found = r") + fmt.Fprintln(w, " break") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " if found == nil {") + fmt.Fprintln(w, " log.Info(\"did not find time row\", name)") + fmt.Fprintln(w, " return false") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " for _, sf := range mt.timeFuncs {") + fmt.Fprintln(w, " if sf.title != name {") + fmt.Fprintln(w, " continue") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " // log.Info(\"updateTimeFunc() has row len =\", len(mt.x."+FRUITS+"))") + fmt.Fprintln(w, " // log.Info(\"virtpb: starting\", name, found.Vals)") + fmt.Fprintln(w, " for i, _ := range found.Vals {") + fmt.Fprintln(w, " newt := sf.f(mt.x."+FRUITS+"[i])") + fmt.Fprintln(w, " found.Vals[i] = timestamppb.New(newt) // convert to protobuf time") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " // log.Info(\"virtpb: ending\", name, found.Vals)") + fmt.Fprintln(w, " return true") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " return false") + fmt.Fprintln(w, "}") + fmt.Fprintln(w, "// END TABLE UPDATE") +}