summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-03 01:39:58 -0500
committerJeff Carr <[email protected]>2025-10-03 01:39:58 -0500
commit72d7c621d0a17b824250ab7f2e6d965f2f5083f4 (patch)
tree6582a5b620782bb3b1001acf2c71facc19c98eb9
parenta9dd67b5b8d0fdea16de11bf33cdf2262ba72962 (diff)
be smart about ouput here when making bash output
-rw-r--r--complete.go18
1 files changed, 13 insertions, 5 deletions
diff --git a/complete.go b/complete.go
index 2ebe8be..49cd80e 100644
--- a/complete.go
+++ b/complete.go
@@ -110,6 +110,7 @@ func (pb *Auto) SubCommand(cmd ...string) {
// SubCommand(cmd)
}
+/*
func (pb *Auto) SubCommandShow() {
partial := strings.Trim(pb.Partial, "'")
if pb.Debug {
@@ -136,7 +137,9 @@ func (pb *Auto) SubCommand2(cmd string, addmatch []string) {
os.Exit(0)
// SubCommand(cmd)
}
+*/
+// todo: move everything to this?
func (pb *Auto) Autocomplete3(sendthis []string) {
pb.Autocomplete2(strings.Join(sendthis, " "))
}
@@ -279,12 +282,17 @@ func parseArgv(argname string) *Auto {
for _, s := range pb.Argv {
p := fmt.Sprintf("'%s'", s)
if pb.Partial == p {
- pb.Debugf("DEBUG: MATCH Partial %s %s", s, p)
+ pb.Debugf("DEBUG: Last argv MATCHES Partial %s %s", s, p)
continue
} else {
- pb.Debugf("DEBUG: NO MATCH Partial %s %s", s, p)
+ pb.Debugf("DEBUG: Last argv DOES NOT MATCH Partial %s %s", s, p)
}
pb.Last = s
+ if strings.HasPrefix(s, "-") {
+ // skip args like -test --verbose when sending subcommands to go-args for help text
+ continue
+ }
+ pb.Goargs = append(pb.Goargs, s)
}
// if pb.Cmd == "" {
// pb.Cmd = strings.Join(pb.Argv, "BLAH")
@@ -382,12 +390,12 @@ func doBash(argname string) {
homeDir, err := os.UserHomeDir()
if err != nil {
- log.Printf("%v\n", err)
+ log.Printf("# %v\n", err)
os.Exit(0)
}
filename := filepath.Join(homeDir, ".local/share/bash-completion/completions", argname)
if shell.Exists(filename) {
- log.Fprintln(os.Stderr, filename, "file already exists")
+ log.Fprintln(os.Stderr, "# file already exists", filename)
// os.Exit(0)
}
basedir, _ := filepath.Split(filename)
@@ -399,7 +407,7 @@ func doBash(argname string) {
f.Write([]byte(makeBashCompletionText2(argname)))
f.Close()
} else {
- log.Fprintln(os.Stderr, filename, err)
+ log.Fprintln(os.Stderr, "# open file error", filename, err)
}
os.Exit(0)
}