Commit Graph
100 Commits
Author SHA1 Message Date
Eric Paris c678ff029e Merge pull request #256 from sttts/sttts-fix-bash-escaping
Fix escaping of % in bash code strings
2016-03-22 12:10:42 -05:00
Eric Paris 966e6048eb Merge pull request #230 from garthk/fix-man-see-also
Ensure SEE ALSO list has no leading comma.
2016-03-21 19:23:55 -05:00
Eric Paris 57021c6b4d Merge pull request #244 from apriendeau/silence-errors-readme
updates readme to Explain SilenceErrors and SilenceUsage #225
2016-03-21 19:22:44 -05:00
Eric Paris d6b481239e Merge pull request #255 from sttts/sttts-bash-completion-flag-equal
Advanced custom bash completion of flags
2016-03-21 19:22:24 -05:00
Eric Paris 1bacefc9a2 Merge pull request #254 from fabianofranz/optional_options_at_the_end_of_usage
Must only add "[flags]" to the end of usage if not yet present
2016-03-15 16:50:08 -05:00
Eric Paris 04d02e3184 Merge pull request #241 from bogem/typo
Fix typo in README
2016-02-06 12:39:43 -05:00
Eric Paris 8e91712f17 Merge pull request #228 from garthk/fix-doc-generation
Fix doc generation and its documentation
2016-01-16 22:09:38 -05:00
Eric Paris 9c93009019 Merge pull request #223 from mattnenterprise/doc-link-fixes
Fix links to markdown and man page docs
2016-01-13 22:06:19 -05:00
Eric Paris a3a9f345ca Merge pull request #218 from mvdan/error-checking
Error checking for doc generation
2016-01-06 09:57:15 -05:00
Eric Paris c82a0ceef8 Merge pull request #215 from mvdan/interfacer
Replace *bytes.Buffer with io.Writer
2016-01-05 16:50:52 -05:00
Eric Paris 73665614cb Merge pull request #197 from magiconair/issue-195-mousetrap-win-only
Issue #195: Compile mousetrap only on Windows
2015-12-16 19:04:05 -05:00
Eric Paris 11265d64db Merge pull request #210 from boz/colon-completion
Bash completion for names with ':' character.
2015-12-16 17:12:45 -05:00
Eric Paris ea3bf167cf Merge pull request #211 from NanXiao/patch-1
Update command.go
2015-12-16 10:02:01 -05:00
Eric Paris 29cddf65b2 Merge pull request #208 from gosharplite/patch-2
Update four to three
2015-12-09 08:50:41 -05:00
Eric Paris 8210022f43 Merge pull request #207 from gosharplite/patch-1
Fix wrong command name.
2015-12-08 10:13:42 -05:00
Eric Paris 1c44ec8d3f Merge pull request #200 from sobit/patch-1
fix typo
2015-11-24 10:32:17 -05:00
Eric Paris cb63a06ed9 Merge pull request #192 from apriendeau/executeC
Creates the ExecuteC function while maintaining Execute signature
2015-11-18 17:09:54 -05:00
Eric Paris 2e6a428921 Merge pull request #179 from eparis/init_comp
Check for _init_completion not_init_completionS
2015-11-03 15:41:40 -05:00
Eric Paris 57c62d3180 Merge pull request #173 from jojomi/master
Update README.md
2015-11-03 15:29:33 -05:00
Eric Paris 9199ed1e52 Merge pull request #178 from mattnenterprise/completions-osx
Modifying bash completions so they can run on OSX
2015-11-03 15:28:50 -05:00
Eric Paris 58e38f95da Check for _init_completion not_init_completionS 2015-11-03 15:09:37 -05:00
Eric Paris a082ce41f3 Merge pull request #174 from jbowes/fix-duplicate-usage
Ensure the usage command is printed only once
2015-11-02 14:27:52 -05:00
Eric Paris 24562666ea Merge pull request #172 from tamird/patch-1
README: fix CockroachDB typo
2015-10-29 15:18:41 -05:00
Eric Paris 230787ee13 Merge pull request #169 from apriendeau/silence-errors
[silence-errors]: adds a way for errors to silenced down the stack
2015-10-26 19:12:39 -05:00
Eric Paris 8b2293c741 Merge pull request #167 from siddharthist/docs/ArgsLenAtDash
Added documentation for ArgsLenAtDash
2015-10-13 17:51:39 -05:00
Eric Paris d732ab3a34 Merge pull request #164 from vikstrous/fix_bug
fix bug with PersistentPreRunE
2015-09-30 09:31:26 -04:00
Eric Paris 046a673252 Merge pull request #163 from fabianofranz/siblings_improvements
Improve suggestions
2015-09-29 11:27:22 -04:00
Eric Paris 53d96508f5 Merge pull request #160 from eparis/len-at-dash
Provide the length of Args when a -- is found in commandline
2015-09-17 16:09:08 -05:00
Eric Paris edde52e321 Provide the length of Args when a -- is found in commandline
This allows a program to know what args came before the -- and what args
came after.
2015-09-16 12:31:41 -04:00
Eric Paris 4b76e97cd6 Merge pull request #158 from eparis/more-errors-in-test
More error output if a could of _test fail
2015-09-15 22:57:41 -05:00
Eric Paris 664a3ab4a3 Merge pull request #159 from eparis/travis
Update travis to use more versions of go
2015-09-15 22:57:29 -05:00
Eric Paris 6e4e76655d More error output if a could of _test fail 2015-09-15 18:02:03 -04:00
Eric Paris 79996f7fcf Update travis to use more versions of go 2015-09-15 18:01:43 -04:00
Eric Paris 6d70311770 Merge pull request #149 from fabianofranz/siblings
Allows command suggestions along with "unknown command" errors
2015-09-13 22:44:46 -05:00
Eric Paris b28774dd68 Merge pull request #154 from eparis/fix-trailing-newline
If nothing after flags: sting print a newline
2015-09-11 23:27:51 -05:00
Eric Paris 632e090805 If nothing after flags: sting print a newline 2015-09-12 00:21:31 -04:00
Eric Paris eeec8e3ce3 Merge pull request #153 from eparis/remove-useless-assignment
UsageTemple: remove useless variable assignment
2015-09-11 18:00:59 -05:00
Eric Paris d96b4f7741 Merge pull request #152 from eparis/no-newline-after-flags
No newline after Flags in usage
2015-09-11 18:00:50 -05:00
Eric Paris 1ac08d9d94 UsageTemple: remove useless variable assignment 2015-09-11 18:52:47 -04:00
Eric Paris 85bb343e9c Merge pull request #151 from eparis/no-newline-without-short
No leading newline if Short and Long both unset
2015-09-11 17:46:37 -05:00
Eric Paris 0d9b07baf9 Merge pull request #150 from eparis/help-not-available
Do not count "help" as "Available"
2015-09-11 17:46:27 -05:00
Eric Paris 8af2b2b89f No newline after Flags in usage
The flags usage template from pflags has a trailing \n. We need to
include a newline in case there are no flags in our template. This will
trim the newline from the end of the flags from pflag and we can do it
right outselves.
2015-09-11 18:45:28 -04:00
Eric Paris 717619095e No leading newline if Short and Long both unset
Before --help would start
```

Usage:
  command [flags]
  [...]
```

After --help will show
```
Usage:
  command [flags]
  [...]
```
2015-09-11 18:28:40 -04:00
Eric Paris 24b4b01ffa Do not cound "help" as "Available" 2015-09-11 18:25:28 -04:00
Eric Paris 42498ec777 Merge pull request #148 from tamird/trailing-spaces
trim trailing whitespace
2015-09-11 17:24:06 -05:00
Eric Paris 4b86c66ef2 Merge pull request #146 from eparis/is-available-rework
Update IsAvailableCommand checks
2015-09-09 14:20:07 -05:00
Eric Paris 3eac1434ef Update IsAvailableCommand checks
This slightly changes IsAvailableCommand in that a non-runnable command
with a runnable subcommand is now 'Available'

We also use IsAvailableCommand in the rest of the codebase instead of
half kinda sorta doing it incorrectly other places.
2015-09-08 22:48:12 -04:00
Eric Paris 75d96d75c3 Merge pull request #145 from eparis/man-cleanups
Enhance Man Page Generation
2015-09-08 18:19:27 -05:00
Eric Paris b625a4db24 Merge pull request #143 from sdomino/feature/hidden-commands
Feature/hidden commands
2015-09-08 18:19:22 -05:00
Eric Paris edcf765d9f Mangen: allow callers to specify header information
We previously had this weak argument called projectName which let you
set a single part of a man page header. Instead do the best we can if
the caller doesn't pass us anything, but let the caller specify anything
they want.
2015-09-08 18:52:09 -04:00
Eric Paris cfecf1379c manpage generation: Make sure parent in SEE ALSO has dashes
The CommandPath() for a parent might have a space (if .Parent() != .Root())
so we need to replace those spaces with `-`
2015-09-08 12:32:15 -04:00
Eric Paris 68f5a81a72 Merge pull request #141 from eparis/mac-completions
Enable bash completions on Macs
2015-09-04 09:11:03 -05:00
Eric Paris 32e87e3c8e Enable bash completions on Macs
If they installed bash-completions from homebrew, this should make our
completions work.
2015-09-03 17:00:18 -04:00
Eric Paris 16b4170663 Merge pull request #138 from eparis/cleanup-helpfunc
Allow SetHelpFunc to overwrite the --help flag instead of just the help subcommand
2015-09-03 15:53:20 -05:00
Eric Paris c2d19e9c43 Use the HelpFunc for the --help flag
We were just calling Help() when a user set the --help flag. You could
overwrite how the help subcommand worked with SetHelpFunc, but not now
the --help flag worked.
2015-09-01 14:25:38 -04:00
Eric Paris 27bf24802c Redo HelpFunc() to work things other than the help subcommand
Today the HelpFunc() seemed to be tailor built for the `help`
subcommand. Which has a rather weird purpose as its `Run` needs to
find the actual command we want to get help about.

Instead make the HelpFunc() for a command be about that command,
rather than having it search for some other command...
2015-09-01 14:25:32 -04:00
Eric Paris 1f92281ffc Merge pull request #135 from akutz/feature/custom-templ-funcs
Template Function Injection
2015-09-01 11:55:58 -05:00
Eric Paris e15d674de6 Merge pull request #134 from apriendeau/master
#67 creates RunE functions to allow for errors to populate to the top
2015-09-01 11:51:29 -05:00
Eric Paris 99d2c51143 Merge pull request #137 from eparis/fix-help-template
Remove spurious } from the help template
2015-09-01 11:51:12 -05:00
Eric Paris f7b419fbe1 Merge pull request #136 from eparis/late-init-help-flag-fix
Fix the late init help flag
2015-09-01 11:51:03 -05:00
Eric Paris 8f9b8c7cba Remove spurious } from the help template 2015-09-01 12:03:37 -04:00
Eric Paris ae28810f0e Fix the late init help flag 2015-09-01 11:31:23 -04:00
Eric Paris 4c4f2d9417 Merge pull request #133 from eparis/late-init-help-flag
Initialize the --help flag as late as possible
2015-08-31 09:26:37 -05:00
Eric Paris bab6d45bc6 Initialize the --help flag as late as possible
This should let users overwrite it with something custom. Like the help
sub-command.
2015-08-30 12:10:14 -04:00
Eric Paris 7cd6c9c000 Merge pull request #132 from AntonioMeireles/unbrand-man
turn generated man pages non k8s specific.
2015-08-28 12:09:21 -05:00
Eric Paris e4993076d8 Merge pull request #128 from eparis/genManPages
Auto generation of a man pages
2015-08-21 01:11:45 -07:00
Eric Paris 9e7788657f Auto generation of a man page 2015-08-21 01:10:13 -07:00
Eric Paris db05184446 Merge pull request #127 from eparis/show-commandline-on-parent
Display pflag.CommandLine flags as if they were declared on the parent
2015-08-16 22:42:27 -07:00
Eric Paris e8bd799c1c Display pflag.CommandLine flags as if they were declared on the parent
```go
package main

import (
	"github.com/spf13/cobra"
	"github.com/spf13/pflag"
)

func main() {
	cmd := &cobra.Command{
		Use:   "min",
		Short: "minimal command",
		Run:   func(_ *cobra.Command, _ []string) {},
	}

	pflag.String("oncmdline", "oncmdline", "oncmdline")
	cmd.Execute()
}
```

Is a minimal cobra program.  When --help is displayed without this patch
you only get:

But with the patch --oncmdline is shows under flags.
2015-08-16 22:31:08 -07:00
Eric Paris c55cdf3385 Merge pull request #126 from anthonyfok/bash-completion/subdirs-in-dir
Add new BashCompSubdirsInDir annotation
2015-08-09 17:25:49 -05:00
Eric Paris 385fc87e43 Merge pull request #122 from eparis/cleanups
Update help template
2015-06-29 19:11:20 -05:00
Eric Paris f453e878d4 Update help template
The template had gotten out of control. It was basically unparsable.
This does a little more work in functions and a little less in the
template. Overall it should be basically the same. It might output the
'additional help topics' in a couple of fewer places, but I doubt people
complain too much...
2015-06-29 20:06:04 -04:00
Eric Paris 8e127101ec Merge pull request #121 from eparis/cleanups
Cleanups
2015-06-29 17:30:09 -05:00
Eric Paris 9a9d01c9ec Better error message
Calling `cobra-test echo times one two turkey` where `one` and `two` are
valid arguments but `turkey` is not now results in.

Error: invalid argument "turkey" for "cobra-test echo times"
Run 'cobra-test echo times --help' for usage.
2015-06-29 17:09:41 -04:00
Eric Paris 0a7a850026 Make error handling more obvious
Again, the code looks a little more like a middle-schooler's code. But
that just makes it easier to understand and maintain.
2015-06-29 15:45:01 -04:00
Eric Paris 6f735782e0 Remove unused ErrHelp check
Inside Command.Execute() we were checking for pflag.ErrHelp. But
Command.execute() never returns that value. It just complicates the code
and isn't used.
2015-06-29 15:45:01 -04:00
Eric Paris 0a1a8e2e92 Remove (unused) cmdErrorBuf
Nothing was using it any more...
2015-06-29 15:45:01 -04:00
Eric Paris d0bb3e33e6 rework Find() to make it more obvious what is happening
We had lots of quirky if statements like `commandFound.Name() ==
c.Name() && len(stripFlags(args, c)) > 0 && commandFound.Name() !=
args[0]` which embeed all sorts of artifacts which are hard to parse. So
in general, just try to simplify and make stuff readable.
2015-06-29 15:44:56 -04:00
Eric Paris 66816bcd03 Merge pull request #119 from eparis/bogus-bad-command
Handle grand children with the same name as the root
2015-06-22 17:06:05 -05:00
Eric Paris 07ad27d239 Handle grand children with the same name as the root
This fixes a problem where if you had a root command and a grand child
with the same name, the parser would break and would not run the
grandchild. The code was special casing if the immediate child had the
same name, but didn't handle grand-children
2015-06-22 17:54:08 -04:00
Eric Paris ddd4c82b82 Merge pull request #116 from sgotti/fix_flag_as_unknown_command_in_output
Correctly print the unknown command name
2015-06-22 16:52:47 -05:00
Eric Paris a8f7f3dc25 Merge pull request #118 from liggitt/file_autocomplete_helper
Simplify setting file/extension annotations on a flag
2015-06-22 14:56:13 -05:00
Eric Paris 8f5946caae Merge pull request #112 from jlowdermilk/fix-genmarkdowntree
Don't prepend filename in default GenMarkdownTree
2015-05-20 22:43:41 -05:00
Eric Paris c11766b405 slight typo in md_docs.md 2015-05-13 08:38:33 -05:00
Eric Paris bba56042cf Merge pull request #105 from eparis/minor-bash-cleanup
make filename extension handling a bash function
2015-05-04 22:51:16 -05:00
Eric Paris dff410ab56 make filename extension handling a bash function
We were trying to call a bash function with bash stuff like @ () from a
variable.  Stop that.  Just call a function with an arg from a variable
instead of trying to pass around the bash.

Should fix https://github.com/spf13/cobra/pull/103
2015-05-04 18:41:53 -04:00
Eric Paris 743fa31b46 Merge pull request #106 from eparis/bash-comp-docs
Make the filename extension bit of docs easier to read.
2015-05-04 15:20:46 -05:00
Eric Paris 48b95d0594 Make the filename extension bit of docs easier to read. 2015-05-04 16:20:06 -04:00
Eric Paris 787b737b48 Merge pull request #104 from eparis/minor-bash-cleanup
Clean up minor bash complaints from shellcheck.net
2015-05-04 13:56:05 -05:00
Eric Paris f4b3401f9e Clean up minor bash complaints from shellcheck.net 2015-05-04 14:40:27 -04:00
Eric Paris 7fc9f148dd Merge pull request #102 from andronat/master
Fixed Persistent-Run function propagation
2015-05-04 11:57:28 -05:00
Eric Paris 3ee9552eeb Merge pull request #100 from eparis/pre-post-run
Pre post run fucntions
2015-04-30 13:26:01 -05:00
Eric Paris fad5931693 Add docs, tests, and bit of rearrainging... 2015-04-30 14:08:47 -04:00
Eric Paris 9cf0f3737d Merge pull request #90 from eparis/deprecated-subcommands
Deprecated subcommands
2015-04-30 10:22:48 -05:00
Eric Paris 7c7837e882 Merge pull request #85 from eparis/more-simplification
More simplification
2015-04-30 10:21:12 -05:00
Eric Paris 2d5fab043c Merge pull request #75 from eparis/CommandLine
Make flags declared outside spf13.pflag persistent flags on the parent
2015-04-30 10:20:35 -05:00
Eric Paris c3e48f996d Deprecated subcommands
They should still work, but shouldn't show up in help or usage output
2015-04-29 13:08:20 -04:00
Eric Paris 69e5f196b5 Merge pull request #98 from eparis/markdown-quiet-test
quiet down to go test for markdown generation
2015-04-28 09:43:10 -05:00
Eric Paris a112838e26 quiet down to go test for markdown generation
We were printing the markdown, don't ask me why.
2015-04-28 10:42:03 -04:00
Eric Paris 3c187e9045 Merge pull request #93 from kennyballou/minor_grammar_fix
Fix minor wording issue in README
2015-04-16 16:19:32 -05:00