update argv code

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-11-07 13:03:42 -06:00
parent d6f9401f61
commit 1b7db666f1
4 changed files with 51 additions and 8 deletions

View File

@ -1,5 +1,13 @@
VERSION = $(shell git describe --tags)
all: all:
GO111MODULE=off go build -v -x GO111MODULE=off go build -v -x \
-ldflags "-X main.VERSION=${VERSION}"
./helloworld
install:
GO111MODULE=off go install -v -x \
-ldflags "-X main.VERSION=${VERSION}"
./helloworld ./helloworld
gocui: gocui:

39
argv.go Normal file
View File

@ -0,0 +1,39 @@
package main
import (
"os"
"github.com/alexflint/go-arg"
)
/*
this parses the command line arguements
this enables command line options from other packages like 'gui' and 'log'
*/
var argv args
type args struct {
Demo string `arg:"positional" help:"this is just a demo"`
}
func (a args) Description() string {
return `
This helloworld example demonstrates the 'gui' plugin toolkits
`
}
func init() {
pp := arg.MustParse(&argv)
// for very new users or users unfamilar with the command line, this may help them
if argv.Demo == "version" || argv.Demo == "help" || argv.Demo == "?" {
pp.WriteHelp(os.Stdout)
os.Exit(0)
}
}
func (args) Version() string {
return "helloworld " + VERSION
}

View File

@ -5,17 +5,11 @@ package main
*/ */
import ( import (
"go.wit.com/dev/alexflint/arg"
"go.wit.com/lib/debugger" "go.wit.com/lib/debugger"
"go.wit.com/log" "go.wit.com/log"
) )
var args struct {
}
func init() { func init() {
arg.MustParse(&args)
if debugger.ArgDebug() { if debugger.ArgDebug() {
log.Info("cmd line --debugger == true") log.Info("cmd line --debugger == true")
go func() { go func() {

View File

@ -1,4 +1,3 @@
// This creates a simple helloworld window
package main package main
import ( import (
@ -6,6 +5,9 @@ import (
"go.wit.com/log" "go.wit.com/log"
) )
// sent from -ldflags
var VERSION string
// This is the beginning of our binary tree of widgets // This is the beginning of our binary tree of widgets
var myGui *gui.Node var myGui *gui.Node