diff options
| author | Jeff Carr <[email protected]> | 2025-10-18 03:23:32 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-18 03:23:32 -0500 |
| commit | 7ef1d9192c366423f5e6bf2b68946aac5cdea336 (patch) | |
| tree | 72c016d06341849fd3deaa38dac5d7138d56b4b0 /interface.go | |
| parent | 8ad0160a0d62591fbdc26518f8d664ff0ea64b8d (diff) | |
trying to fix gui autocomplete
Diffstat (limited to 'interface.go')
| -rw-r--r-- | interface.go | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/interface.go b/interface.go index 02541a6..d1d3aec 100644 --- a/interface.go +++ b/interface.go @@ -1,9 +1,25 @@ package argvpb +import "go.wit.com/log" + // this is a work in progress -// Versioned is the interface that the destination struct should implement to -// make a version string appear at the top of the help message. +// WORKING ON START +type initArgvI interface { + // Version returns the version string that will be printed on a line by itself + // at the top of the help message. + InitArgv() (string, string, string) +} + +type initGuiI interface { + // Version returns the version string that will be printed on a line by itself + // at the top of the help message. + InitGui() error +} + +// WORKING ON END + +// NOTSURE ABOUT START type appnameI interface { // Version returns the version string that will be printed on a line by itself // at the top of the help message. @@ -46,10 +62,28 @@ type exitI interface { // Described is the interface that the destination struct should implement to func findAppInfo(tmp interface{}) { + // THIS STUFF IS FINALIZED FOR NOW 2025/10/18 (review in a few months) + if tmp, ok := tmp.(initArgvI); ok { + me.ARGNAME, me.BUILDTIME, me.VERSION = tmp.InitArgv() + } else { + panic("you must define in your app the function: (args) func InitArgv() (string, string, string)") + } + + if tmp, ok := tmp.(initGuiI); ok { + me.initGuiFunc = tmp.InitGui + if err := tmp.InitGui(); err != nil { + log.Info("go.wit.com/gui failed to initialize", err) + panic("gui failed to init") + } + } else { + panic("you must add this function to argv.go: (argv) func InitGui() error") + } + + // TODO: SORT OUT STUFF BELOW HERE if tmp, ok := tmp.(appnameI); ok { me.ARGNAME = tmp.Appname() } else { - panic("you must define in your app the function: (argv) func Appname() string") + // panic("you must define in your app the function: (argv) func Appname() string") } if tmp, ok := tmp.(buildtimeI); ok { @@ -62,13 +96,6 @@ func findAppInfo(tmp interface{}) { if tmp, ok := tmp.(examplesI); ok { me.examples = tmp.Examples } - - if tmp, ok := tmp.(guiI); ok { - me.guiFunc = tmp.ArgvGui - } else { - // panic("you must add this function to argv.go: (argv) func ArgvGui() error") - } - if tmp, ok := tmp.(autoFuncI); ok { me.autoFunc = tmp.DoAutoComplete } else { |
