Commit Graph

650 Commits

Author SHA1 Message Date
Haim Ashkenazi
2662787697 zsh-completion: added support for subcommand description.
Also make the template more elegant on the way...
2019-06-07 10:09:50 -04:00
Haim Ashkenazi
f0508c8e76 zsh-completion ignores hidden commands and flags :) 2019-06-07 10:09:50 -04:00
Haim Ashkenazi
a15d099018 zsh-completion fixed reference to cmd name
cmd.Use is not the command name :). Found it once I figured out
that I need to execute the command in order to fully test the
generated completion.
2019-06-07 10:09:50 -04:00
Haim Ashkenazi
7e2436b79d First try at better zsh completions:
A very basic POC. Need to refactor to generate completion
structure before passing to the template to avoid repeated
computations.

What works:
  * Real zsh completion (not built on bash)
  * Basic flags (with long flag and optional shorthand)
  * Basic filename completion indication (not with file extensions though)

What's missing:
  * File extensions to filename completions
  * Positional args
  * Do we require handling only short flags?
2019-06-07 10:09:50 -04:00
Willi Eggeling
67fc4837d2 added variable to allow configuration of mousetrap message duration (#809)
new variable MousetrapDisplayDuration allows to modify the default
display duration of 5s, or to completely disable the timeout and wait
for the user to press the return key.
2019-03-20 20:05:52 -04:00
umarcor
5755ecf102 [TrivialPatches] Typos in README.md, fix and update CI, update projects list... (#840)
* update Example in README.md (#769)

* specify the color as the required arg (#777)

* command: fix typo in docstring of InheritedFlags (#779)

* add istio to the list of projects built with Cobra (#786)

* remove redundant 'else' (#806)

* add mattermost-server as a project built with Cobra (#824)

* update README.md (#826)

Fix the comment: consistent with others

* add uber/prototool as a project built with Cobra (#831)

* fix(ci): use go vet, update to Go 1.12, update shellcheck to v0.4.6 (#832)

* add go.mod and go.sum (#833)

* chore(travis): move 'diff' job to separate stage in Travis (#839)

* chore(travis): use language configuration list instead of explicit entries in matrix.include (#839)

* chore(travis): update shellcheck-docker to v0.6.0 (#839)

* update(README.md): separate projects by commas, instead of using a list

* chore: update viper to v1.3.2 and go-md2man to v1.0.10

* fix: convert CRLF to LF when comparing files

* use kyoh86/richgo to provide colored test outputs
2019-03-20 17:21:26 -04:00
Daisuke Taniwaki
ba1052d4cb Fix two word flags (#807) 2019-03-11 08:55:09 -04:00
Michael
7547e83b2d Run tests against go 1.11 and drop 1.9 (#737)
* Update the Travis and CircleCI Go versions

* Adapt to new gofmt formatting

The formatting of gofmt changed slightly in go 1.11.  The release
notes recommend to use a specific binary of gofmt.  See
https://golang.org/doc/go1.11#gofmt

This commit adapts to the new formatting applied by gofmt and changes
the configs for travis and circleci to run gofmt only with go 1.11.
2019-01-08 19:34:09 -05:00
Daisuke Taniwaki
d2d81d9a96 Fix too many underscore for __custom_func (#794)
* Fix too many underscore for __custom_func

* Fix typo of too many leading underscores in docs
2018-11-27 08:31:06 -05:00
Aleksa Sarai
fe5e611709 doc: obey SOURCE_DATE_EPOCH with manpage generation (#735)
Previously if a cobra user didn't specify an explicit .Date header, the
current time would be included in all of the generated man pages each
time they were built. This causes an issue for reproducible builds,
since each re-build of a package that includes the man pages will have
different times listed in the man pages.

To fix this, add support for SOURCE_DATE_EPOCH (which is a standardised
packaging environment variable, designed to be used specifically for
this purpose[1]).

[1]: https://reproducible-builds.org/specs/source-date-epoch/

Signed-off-by: Aleksa Sarai <asarai@suse.de>
2018-10-21 10:11:14 -04:00
bpdunni
f619abc1d7 Added ExactValidArgs (#765) 2018-10-21 10:01:21 -04:00
Garret Kelly
40172f1635 Remove unneeded imports from README.md example (#767) 2018-10-18 10:37:54 -04:00
Alex Mayer
8d114be902 README: Remove Unneeded Newline (#746) 2018-09-15 18:22:04 -04:00
Marian Steinbach
99dc123558 Replace Giant Swarm 'swarm' with 'gsctl' (#738) 2018-08-29 12:07:45 -04:00
Paul
6fd8e29b07 Qualify custom bash func name (#730)
* Qualify custom bash func name

 - fixes issue where multiple cobra apps using custom bash completion
 would have their __custom_func collide
 - support fallback to plain __custom_func to maintain compatibility

#694

* Improve tests for bash completion __custom_func

 - check for the correct number of occurrences of function name

#694
2018-08-21 12:12:02 -04:00
Pascal Dierich
ff0d02e855 fix typo in doc/man_docs.go (#732) 2018-08-20 13:45:24 -04:00
Federico
7c4570c3eb #716 - Removed useless libraries in readme (#717)
Signed-off-by: Federico <federico@imaginecurve.com>
2018-07-22 17:56:44 -04:00
Hyang-Ah Hana Kim
a114f312e0 fix test build breakage with go1.11 (#712)
As discussed in golang/go#26109, vet typecheck is enabled
in go1.11 and the command_test.go can't be compiled any
more with go1.11 due to the unread variables in the
command_test.go.

Instead of removing the unused variables, this CL reads the
variables and compares the values against the current
behavior so when the related issue is fixed, this test can
be updated accordingly.
2018-06-29 11:25:35 -04:00
Jason Hendry
1e58aa3361 Include a basic example #465 (#631) 2018-05-31 14:03:38 -04:00
Zef Hemel
ef82de70bb Fixed code sample for bash completion (#687) 2018-04-27 09:45:50 -04:00
James DeFelice
0ab5b6bcfc doc: hide hidden parent flags (#686)
* fixes #685
2018-04-24 12:15:12 -04:00
Rajat Jindal
7ee208b09f support completions for command aliases (#669)
* support completions for command aliases

* try newer version of shellcheck

* initialize aliashash only when BASH_VERSION > 3
2018-04-23 08:47:20 -04:00
Rajat Jindal
615425954c remove dot after the abs path (#672) 2018-04-12 08:08:29 -04:00
Allen Sun
cd30c2a7e9 typo: fix incorrect (#668)
Signed-off-by: Allen Sun <shlallen1990@gmail.com>
2018-04-08 12:17:36 -04:00
Rajat Jindal
4dab30cb33 Add support for ignoring parse errors (#662) 2018-03-31 08:36:20 -04:00
Michael
a1f051bc3e Update the Travis and CircleCI Go versions (#651) 2018-03-21 09:39:34 -05:00
Di Xu
c439c4fa09 Terminate the stripping of flags when -- is found (#649) 2018-03-19 11:20:04 +05:00
Bilal Amarni
c6c44e6fdc Update the bash completion example for kubectl (#645) 2018-03-01 10:15:57 -08:00
John McCabe
6644d46b81 Prefix bash functions with root command name (#643)
* Prefix bash functions with root command name

Prior to this commit the autocomplete bash functions were being prefixed
with the root command name, but references to those functions from
subcommands were having the subcommands prefixed instead - causing the
function lookups to fail and error out.

For example (as observed in kubernetes/kubernetes#60517):

kubectl create -f [Tab] failed with the following message: kubectl
create -f __create_handle_filename_extension_flag: command not found

in this case the function being invoked should be __kubectl_handle_filename_extension_flag

Signed-off-by: John McCabe <john@johnmccabe.net>

* Test filename extension and subdirs_in_dir for subcommands

This commit adds two regex based tests to ensure that the handle
filename extension and handle subdirs in dir functions are prefixed by
the root command when present in subcommands.

Previously they had been prefixed incorrectly with the subcommand name.

Signed-off-by: John McCabe <john@johnmccabe.net>
2018-02-27 21:38:38 -08:00
Rajat Jindal
a1e4933ab7 Bash completion aliases (#638)
* alias support with bash completions

* add cmdname to rootcmdname

* remove print statement

* add documentation for bash alias
2018-02-21 09:51:53 -08:00
Eric Paris
1a618fb24b
Do not add a space after a single flag completion (#625) 2018-02-21 07:50:56 -08:00
Ricardo N Feliciano
be77323fc0 Try out CircleCI. (#630) 2018-02-11 17:22:30 +01:00
John McCabe
fd32f09af1 Fix generated bash completion for Bash 3 (OSX) (#520)
* Make preamble functions unique to command

Prior to this commit the functions in the preamble had names that didn't
vary based on the command for which the bash completion was generated.

This meant that if you had two bash completions with differences in the
preamble functions then only the last loaded function would be
available.

This commit prefixes all of these functions with the name of the command
so that multiple cobra generated completion files won't clash.

Signed-off-by: John McCabe <john@johnmccabe.net>

* Fix function names in writeFlagHandler

The references to the `__handle_filename_extension_flag` and
`__handle_subdirs_in_dir_flag` functions in `writeFlagHandler` hadn't
been updated correctly in the previous commits.

Signed-off-by: John McCabe <john@johnmccabe.net>

* Pass cmd into writeFlagHandler

This commit passes the cmd pointer into the writeFlagHandler so that the
`__handle_filename_extension_flag` and `__handle_subdirs_in_dir_flag`
functions can have the `cmd.Name()` prefixed.

* Update Bash completion tests

Prefixes the tested `__handle_filename_extension_flag` and
`__handle_subdirs_in_dir_flag` functions with the command name.
2018-02-08 13:34:46 -08:00
Phillip Johnsen
93959269ad Add Execute func example in README.md (#629)
Trivial addition to the first example in `README.md` that defines the
`cmd.Execute()` function that is referenced further down in the `main.go`
example.
2018-02-05 14:42:58 -08:00
Jake Dodd
c2bbfaa12d Add usage example for required flags (#627)
* Add usage example for required flags

* Explain new behavior in MarkFlagRequired godocs
2018-02-05 11:53:53 -08:00
Tim Peoples
eb58983359 Add CalledAs method to cobra.Command (w/ tests) (#567)
* Add `CalledAs` method to Command (w/ tests)

The `CalledAs` method returns the name of the command or alias that
invoked the command -- as long as the command was actually invoked.
Otherwise, it returns the empty string.

The opens up possibilies for commands to behave differently based on
which alias invoked the command (in the same vein as Linux programs
which adjust their behavior based on the value of argv[0]).

* Fixed formatting
2018-02-04 08:58:53 -08:00
Kazuki Suda
9979838ec4 Fix attemptd assignment to non-variable in bash 3 (#628)
* Fix attemptd assignment to non-variable in bash 3

flaghash variable is an associative array which is only supported in
bash > 3.

* Use -gt instead of >
2018-02-04 08:42:17 -08:00
Shamus Taylor
3a7eb146ba fix grammatical error in command.go (#626) 2018-02-01 22:04:56 -08:00
Ryan Guest
f91529fc60 Fix a couple typos (#621) 2018-01-24 08:31:43 +01:00
Albert Nigmatzianov
0c34d16c31
cmd: Fix #612 (#614)
If user has a project in symlink, just use its destination folder and
work there.
2018-01-15 17:09:33 +01:00
Patrick Uiterwijk
b95ab734e2 Remove trailing whitespace in rootcmd (#606)
Signed-off-by: Patrick Uiterwijk <patrick@puiterwijk.org>
2017-12-31 15:15:56 +05:00
Nick Miyake
ccaecb155a Ensure that '--version' flag works properly for root command (#595)
Make it so that, in the case that the root command is not runnable
but has subcommands, specifying a '--version' flag will still
run the "version" behavior.
2017-12-07 08:49:35 +01:00
Jonathan Hall
c156af3984 Explain OnInitialize better in the GoDoc (#594) 2017-12-06 19:18:45 +01:00
Allen Sun
de2d9c4eca Add alibaba/pouch in README.md (#593)
Signed-off-by: Allen Sun <shlallen1990@gmail.com>
2017-12-04 14:13:25 +01:00
Allen Sun
3a5f27b046 doc: Add a necessary blank line after SEE ALSO (#592)
Signed-off-by: Allen Sun <shlallen1990@gmail.com>
2017-12-04 11:43:02 +01:00
Allen Sun
45a52e208c doc: Remove one additional blank line after Synopsis (#591)
Signed-off-by: Allen Sun <shlallen1990@gmail.com>
2017-12-04 10:21:50 +01:00
Nick Miyake
86783686ca Add documentation for '--version' flag to README (#590) 2017-12-02 18:59:49 +01:00
Nick Miyake
b1ec2ce1ad Add support for --version flag (#584) 2017-12-01 22:37:16 +01:00
Nick Miyake
1be1d2841c Make rootCmd private
Update Cobra generator to make rootCmd private rather than
exporting it. Also update examples in README to use the exported
Execute() command rather than referencing unexported rootCmd.

Fixes #556
2017-11-23 08:13:30 +01:00
Nick Miyake
fb02817f3c Fix README example to be consistent with others (#585)
Alphabetize and separate builtin imports from external imports
to be gofmt-compliant and consistent with other examples in README.
2017-11-22 16:30:46 -05:00