diff options
| author | Jeff Carr <[email protected]> | 2025-10-03 01:39:58 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-03 01:39:58 -0500 |
| commit | 72d7c621d0a17b824250ab7f2e6d965f2f5083f4 (patch) | |
| tree | 6582a5b620782bb3b1001acf2c71facc19c98eb9 | |
| parent | a9dd67b5b8d0fdea16de11bf33cdf2262ba72962 (diff) | |
be smart about ouput here when making bash output
| -rw-r--r-- | complete.go | 18 |
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) } |
