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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
package prep
// initializes logging and command line options
import (
"fmt"
"os"
"strings"
"time"
"go.wit.com/log"
)
// this is the user's application sending us strings we need to send to bash
func (pb *Auto) SendStrings(sendthis []string) {
pb.Autocomplete2(strings.Join(sendthis, " "))
}
// todo: move everything to this?
func (pb *Auto) Autocomplete3(sendthis []string) {
pb.Autocomplete2(strings.Join(sendthis, " "))
}
func (pb *Auto) Autocomplete2(sendthis string) {
dur := pb.Duration.AsDuration()
if dur < time.Millisecond*200 {
pb.Debug = true
/*
pb.Debugf("TODO: show extended help here '%s' '%s' %v dur=%v\n", pb.Arg0, pb.Arg1, pb.Argv, config.FormatDuration(dur))
pb.PrintDebug()
fmt.Println(" ")
*/
if myAuto.pp == nil {
pb.Debugf("myAuto.pp == nil")
} else {
pb.Debugf("myAuto.pp != nil")
if pb.Cmd == "" {
myAuto.pp.WriteHelp(os.Stderr)
} else {
myAuto.pp.WriteHelpForSubcommand(os.Stderr, pb.Cmd)
}
}
}
parts := strings.Split(sendthis, " ")
var all []string
for _, part := range parts {
var found bool
for _, s := range os.Args {
if s == part {
found = true
}
}
if found {
continue
}
all = append(all, part)
}
fmt.Printf("%s", strings.Join(all, " "))
/*
if dur > time.Millisecond*200 {
if dur < time.Millisecond*800 {
// fmt.Println("a b")
fmt.Println(pb.Partial + " hello world")
}
}
*/
}
// try out a new name. also, this whole thing is dumb and needs to be redone
func (pb *Auto) GenerateSubCommandStrings(cmd ...string) {
pb.SubCommand(cmd...)
}
func (pb *Auto) SubCommand(cmd ...string) {
partial := strings.Trim(pb.Partial, "'")
if pb.Debug {
if myAuto.examples == nil {
pb.Debugf("WRITE DEBUG: argv.Examples() not defined")
// log.Fprintf(os.Stderr, "\n")
// log.Fprintf(os.Stderr, "examples was nil\n")
// log.Fprintf(os.Stderr, "\n")
} else {
log.Fprintf(os.Stderr, "\n")
log.Fprintf(os.Stderr, "\n")
log.Fprintf(os.Stderr, "Examples:\n")
for _, line := range strings.Split(myAuto.examples(), "\n") {
log.Fprintf(os.Stderr, " %s\n", line)
}
// log.Fprintf(os.Stderr, "\n")
}
myAuto.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, partial, cmd...)
// myAuto.pp.GetUsageForSubcommand(os.Stdout, os.Stderr, partial, cmd)
// myAuto.pp.GetUsageForSubcommand(os.Stdout, nil, partial, cmd)
} else {
f, _ := os.OpenFile("/tmp/outlook", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
myAuto.pp.WriteHelpForAutocomplete(f, os.Stdout, partial, cmd...)
// myAuto.pp.GetUsageForSubcommand(os.Stdout, nil, partial, cmd)
}
os.Exit(0)
// SubCommand(cmd)
}
/*
func (pb *Auto) SubCommandShow() {
partial := strings.Trim(pb.Partial, "'")
if pb.Debug {
myAuto.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, partial, "show", "repo")
} else {
f, _ := os.OpenFile("/tmp/outlook", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
myAuto.pp.WriteHelpForAutocomplete(f, os.Stdout, partial, "show", "repo")
}
os.Exit(0)
}
func (pb *Auto) SubCommand2(cmd string, addmatch []string) {
partial := strings.Trim(pb.Partial, "'")
if pb.Debug {
// myAuto.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, partial, pb.Cmd)
myAuto.pp.WriteHelpForAutocomplete(os.Stderr, os.Stdout, "", "")
// myAuto.pp.GetUsageForSubcommand(os.Stdout, os.Stderr, partial, cmd)
// myAuto.pp.GetUsageForSubcommand(os.Stdout, nil, partial, cmd)
} else {
f, _ := os.OpenFile("/tmp/outlook", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
myAuto.pp.WriteHelpForAutocomplete(f, os.Stdout, partial, pb.Cmd)
// myAuto.pp.GetUsageForSubcommand(os.Stdout, nil, partial, cmd)
}
os.Exit(0)
// SubCommand(cmd)
}
*/
|