summaryrefslogtreecommitdiff
path: root/argv.template.go
blob: ecffbd64495edd9031556038c4f1d20add02f9ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package main

// these are stubbed in functions needed
// just copy this file from another working app for now
// you shouldn't need to change anything here
// TODO: clean this up in argv

import (
	"os"

	"go.wit.com/dev/alexflint/arg"
	"go.wit.com/gui"
	"go.wit.com/lib/fhelp"
	"go.wit.com/log"
)

func (args) InitArgv() (string, string, string) {
	log.Printf("APPNAME=(%s) BUILDTIME=(%s) VERSION=(%s)\n", APPNAME, BUILDTIME, VERSION )
	return APPNAME, BUILDTIME, VERSION
}

// this function will send the current argv PB to go-args for parsing
func (args) ParseFlags(flags []string) error {
	var err error
	if me.pp == nil {
		// log.Info("Parse Flags GOT flags:", flags)
		me.pp, err = arg.ParseFlags(flags, &argv)
		// panic("got to the app's ParseFlags()")
	} else {
		panic("me.pp was not nil")
	}
	return err
}

// this will print the help for the subcmd
func (args) WriteHelpForAutocomplete(part string, subcmd ...string) error {
	return me.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, part, subcmd...)
}

func (args) WriteHelpForAutocompleteDebug(part string, subcmd ...string) error {
	f, _ := os.OpenFile("/tmp/argv.junk", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
	return me.pp.WriteHelpForAutocomplete(f, os.Stdout, part, subcmd...)
}

// add this funcgion: this will print the help
func (args) WriteHelp() error {
	me.pp.WriteHelp(os.Stderr)
	return nil
}

func (args) InitGui() error {
	// panic("got here")
	arg.Register(&gui.ArgvGui)
	// me.gui = gui.PreInit()
	me.myGui = fhelp.Gui()
	return nil
}

func (args) Exit() {
	gui.UnloadToolkits()
	if me.argv.Verbose() {
		log.Info("argv.Exit() called", APPNAME+".Exit()")
	}
}

func (args) Help() string {
	return "got app help"
}

func (args) MustParse() error {
	me.pp = arg.MustParse(&argv)
	return nil
}

/*
argv.Print.go:	me.pp.WriteHelp(os.Stdout)
argv.SendStrings.go:		me.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, partial, cmd...)
argv.SendStrings.go:		// me.pp.GetUsageForSubcommand(os.Stdout, os.Stderr, partial, cmd)
argv.SendStrings.go:		// me.pp.GetUsageForSubcommand(os.Stdout, nil, partial, cmd)
argv.SendStrings.go:		me.pp.WriteHelpForAutocomplete(f, os.Stdout, partial, cmd...)
argv.SendStrings.go:		// me.pp.GetUsageForSubcommand(os.Stdout, nil, partial, cmd)
theMagicOfAutocomplete.go:		me.pp = arg.MustParse(dest)
theMagicOfAutocomplete.go:	me.pp, err = arg.ParseFlags(flags, dest)
theMagicOfAutocomplete.go:	if me.pp == nil {
theMagicOfAutocomplete.go:		me.pb.Debugf("DEBUG: me.pp == nil after ParseFlags()")
theMagicOfAutocomplete.go:		// me.pb.Debugf("DEBUG: me.pp is ok after ParseFlags()")
theMagicOfAutocomplete.go:				me.pp.WriteHelp(os.Stderr)
theMagicOfAutocomplete.go:				me.pp.WriteHelpForSubcommand(os.Stderr, me.pb.Cmd)
*/