summaryrefslogtreecommitdiff
path: root/toolkit/democui/log.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2023-03-12 08:47:16 -0500
committerJeff Carr <[email protected]>2023-03-12 08:47:16 -0500
commit20f13a4b5be1a986e1085214f492a0afe6db322f (patch)
tree35d633c45a36798126520269e13ae70dd70b5b20 /toolkit/democui/log.go
parent49202eeafdad8e5780fefdad3d2f87fd4354725e (diff)
Squashed commit of the following:
commit 448abc843e2241bab6c399f7a836dccba1defc18 Author: Jeff Carr <[email protected]> Date: Sun Mar 12 08:35:28 2023 -0500 this should probably be a new release now Signed-off-by: Jeff Carr <[email protected]> commit a4064f7a6c5ac67437768aa2bc67c75dafc91c4c Author: Jeff Carr <[email protected]> Date: Sat Mar 11 03:18:23 2023 -0600 able to work on add 'Box' and play with 'Image' Signed-off-by: Jeff Carr <[email protected]> commit 6e59573d85e82ecb005805f50711dddc2df50480 Author: Jeff Carr <[email protected]> Date: Sat Mar 11 03:04:34 2023 -0600 rearrange widget debugging Signed-off-by: Jeff Carr <[email protected]> commit e0570de75c6eb1b4f49e541d9ef5d83ae4434d3d Author: Jeff Carr <[email protected]> Date: Sat Mar 11 02:29:20 2023 -0600 debugging is lots smarter Signed-off-by: Jeff Carr <[email protected]> commit ece32a1e43d91cd197d0a8497ad2f034c46126e1 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 21:38:23 2023 -0600 first pass on a node delete Signed-off-by: Jeff Carr <[email protected]> commit c91cb0eddb0f73f8dea9b21a16cd76c7e2c19a33 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 21:06:29 2023 -0600 can recreate window list Signed-off-by: Jeff Carr <[email protected]> commit 470f9dc26aefd3626b319264fe151aa48d4d5377 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 12:07:34 2023 -0600 attempt to ressurect mouse in the console plugin Signed-off-by: Jeff Carr <[email protected]> commit 747bb53e06dda458cc8cd77b665f4d9d07f5e925 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 10:47:14 2023 -0600 jesus. gocui actually builds and works again as a plugin it didn't take too much to change it Signed-off-by: Jeff Carr <[email protected]> commit 9283c65c8e9b8d2630b251ad952b6b52caddb307 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 07:26:53 2023 -0600 show/hide/etc for window widgets Signed-off-by: Jeff Carr <[email protected]> commit 5724cd7ffd8595ae049a7c9c21cb2f1a993c4b76 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 06:40:36 2023 -0600 compiles and runs Signed-off-by: Jeff Carr <[email protected]> commit 44a5e69ce17cb506adfe24ca72cc86caa9ebcc70 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 05:57:15 2023 -0600 more debugging improvements Signed-off-by: Jeff Carr <[email protected]> commit b86f145f0252e7545b2e7fa78e1d5960cacb7bad Author: Jeff Carr <[email protected]> Date: Fri Mar 10 03:42:32 2023 -0600 set margin on tab's works Signed-off-by: Jeff Carr <[email protected]> commit d2218c08cf44acd5f017a8faa1439ee6d2fd46d5 Author: Jeff Carr <[email protected]> Date: Thu Mar 9 16:26:21 2023 -0600 ignore all *.so files Signed-off-by: Jeff Carr <[email protected]> commit e21934fff3cfea30b04df01bf0714f6927aa78f4 Author: Jeff Carr <[email protected]> Date: Thu Mar 9 16:25:15 2023 -0600 can't embed the toolkit/*.so files here Signed-off-by: Jeff Carr <[email protected]> commit f1e6c5fc9c8ca36db3ad6109d64612b6850fa856 Author: Jeff Carr <[email protected]> Date: Thu Mar 9 16:21:14 2023 -0600 andlabs group widget has Show() and Hide() Signed-off-by: Jeff Carr <[email protected]> commit e8487504aa76ca99c4891b777585a428fda0ef62 Author: Jeff Carr <[email protected]> Date: Thu Mar 9 16:07:56 2023 -0600 pass the node id into the plugin to use in channels Signed-off-by: Jeff Carr <[email protected]> commit 3667940a77af4e3855facb9247771d595477302f Author: Jeff Carr <[email protected]> Date: Thu Mar 9 14:20:21 2023 -0600 fix SetText() on Label Signed-off-by: Jeff Carr <[email protected]> commit 311d6be66db84b63fb7124df64e2e9be0f0b76a4 Author: Jeff Carr <[email protected]> Date: Thu Mar 9 14:06:46 2023 -0600 still compiles and runs Signed-off-by: Jeff Carr <[email protected]> commit ee4e9b21ef59a97f902c6dae2a57ac7b3063fe3b Author: Jeff Carr <[email protected]> Date: Thu Mar 9 11:02:34 2023 -0600 compiles Signed-off-by: Jeff Carr <[email protected]> Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'toolkit/democui/log.go')
-rw-r--r--toolkit/democui/log.go135
1 files changed, 135 insertions, 0 deletions
diff --git a/toolkit/democui/log.go b/toolkit/democui/log.go
new file mode 100644
index 0000000..afd1280
--- /dev/null
+++ b/toolkit/democui/log.go
@@ -0,0 +1,135 @@
+//
+// version v1.3
+//
+// I like things to be easy.
+//
+// combining logging inside of a gui made me do this
+//
+// this means all the log settings are in one place. it should allow
+// things to be over-ridden externally to the library
+// but still allow command line --args to pass debugging settings
+//
+// I also have a generic sleep() and exit() in here because it's simple
+//
+// Usage:
+//
+// log("something", foo, bar)
+// var DEBUG bool = true
+// log(DEBUG, "something else", someOtherVariable) # if DEBUG == false, return doing nothing
+// log(SPEW, "something else", someOtherVariable) # this get's sent to spew.Dump(). Very useful for debugging!
+//
+package main
+
+import (
+ "os"
+ golog "log"
+ "time"
+ "reflect"
+ "github.com/davecgh/go-spew/spew"
+)
+
+var LOGOFF bool = false // turn this off, all logging stops
+var WARN bool
+var INFO bool
+
+type spewt struct {
+ a bool
+}
+
+var SPEW spewt
+
+
+/*
+ sleep() # you know what this does? sleeps for 1 second. yep. dump. easy.
+ sleep(.1) # you know what this does? yes, it sleeps for 1/10th of a second
+*/
+func sleep(a ...any) {
+ if (a == nil) {
+ time.Sleep(time.Second)
+ return
+ }
+
+ log(true, "sleep", a[0])
+
+ switch a[0].(type) {
+ case int:
+ time.Sleep(time.Duration(a[0].(int)) * time.Second)
+ case float64:
+ time.Sleep(time.Duration(a[0].(float64) * 1000) * time.Millisecond)
+ default:
+ log("sleep a[0], type = ", a[0], reflect.TypeOf(a[0]))
+ }
+}
+
+/*
+ exit() # yep. exits. I guess everything must be fine
+ exit(3) # I guess 3 it is then
+ exit("dont like apples") # ok. I'll make a note of that
+*/
+func exit(a ...any) {
+ log(true, "exit", a)
+ //if (a) {
+ // os.Exit(a)
+ //}
+ os.Exit(0)
+}
+
+/*
+ I've spent, am spending, too much time thinking about 'logging'. 'log', 'logrus', 'zap', whatever.
+ I'm not twitter. i don't give a fuck about how many nanoseconds it takes to log. Anyway, this
+ implementation is probably faster than all of those because you just set one bool to FALSE
+ and it all stops.
+ Sometimes I need to capture to stdout, sometimes stdout can't
+ work because it doesn't exist for the user. This whole thing is a PITA. Then it's spread
+ over 8 million references in every .go file. I'm tapping out and putting
+ it in one place. here it is. Also, this makes having debug levels really fucking easy.
+ You can define whatever level of logging you want from anywhere (command line) etc.
+
+ log() # doesn't do anything
+ log(stuff) # sends it to whatever log you define in a single place. here is the place
+*/
+
+func log(a ...any) {
+ if (LOGOFF) {
+ return
+ }
+
+ if (a == nil) {
+ return
+ }
+ var tbool bool
+ if (reflect.TypeOf(a[0]) == reflect.TypeOf(tbool)) {
+ if (a[0] == false) {
+ return
+ }
+ a[0] = "GUI/Toolkit/gocui"
+ }
+
+ if (reflect.TypeOf(a[0]) == reflect.TypeOf(SPEW)) {
+ // a = a[1:]
+ a[0] = "GUI/Toolkit/gocui"
+ if (debugToolkit) {
+ scs := spew.ConfigState{MaxDepth: 1}
+ scs.Dump(a)
+ // spew.Dump(a)
+ }
+ return
+ }
+
+ golog.Println(a...)
+}
+
+func logindent(depth int, format string, a ...interface{}) {
+ var tabs string
+ for i := 0; i < depth; i++ {
+ tabs = tabs + format
+ }
+
+ // newFormat := tabs + strconv.Itoa(depth) + " " + format
+ newFormat := tabs + format
+ log(debugToolkit, newFormat, a)
+}
+
+func setOutput(f *os.File) {
+ golog.SetOutput(f)
+}