Commit Graph

1066 Commits

Author SHA1 Message Date
Ville Skyttä 5b11656e45
perf(bash-v2): read directly to COMPREPLY on descriptionless short circuit (#1700)
Not that it'd really matter that much performancewise given the level we
are at for this case, but this change makes the short circuit roughly
twice as fast on my box as it was for the 1000 rounds done in
marckhouzam/cobra-completion-testing.

Perhaps more importantly, this makes the code arguably slightly cleaner.
2022-05-17 20:57:08 -04:00
Andreas Deininger ffa8860dbe
Change links from http:// to https:// (#1695) 2022-05-17 14:28:13 -04:00
Ville Skyttä e1ded5cd94
fix(bash-v2): skip empty completions when filtering descriptions (#1691)
`read` gives a last null value following a trailing newline.

Regression from fb8031162c.
2022-05-17 13:47:47 -04:00
dependabot[bot] 8afe9d1b56
Bump github.com/cpuguy83/go-md2man/v2 from 2.0.1 to 2.0.2 (#1688)
Bumps [github.com/cpuguy83/go-md2man/v2](https://github.com/cpuguy83/go-md2man) from 2.0.1 to 2.0.2.
- [Release notes](https://github.com/cpuguy83/go-md2man/releases)
- [Commits](https://github.com/cpuguy83/go-md2man/compare/v2.0.1...v2.0.2)

---
updated-dependencies:
- dependency-name: github.com/cpuguy83/go-md2man/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-14 17:16:07 -06:00
Hugo 25f5bb5f97
Prefer ReplaceAll instead of Replace(..., -1) (#1530) 2022-05-14 14:10:36 -06:00
Ville Skyttä 9e88759b19
perf(bash-v2): speed up filtering menu-complete descriptions (#1692)
Similarly as fb8031162c (+ the empty entry
fix) did for the "regular", non-menu completion cases.
2022-05-04 16:23:02 -04:00
Ville Skyttä fb8031162c
perf(bash-v2): speed up filtering entries with descriptions (#1689)
Use simple prefix match instead of single word `compgen -W` command
substitution for each candidate match.
2022-05-03 21:34:55 -04:00
Ville Skyttä 95d7df1858
perf(bash-v2): short-circuit descriptionless candidate lists (#1686)
If the list of candidates has no descriptions, short circuit all the
description processing logic, basically just do a `compgen -W` for the
whole list and be done with it.

We could conceivably do some optimizations like this and more when
generating the completions with `--no-descriptions` in Go code, by
omitting some parts we know won't be needed, or doing some things
differently. But doing it this way in bash, the improvements are
available also to completions generated with descriptions enabled when
they are invoked for completion cases that produce no
descriptions. The result after this for descriptionless entries seems
fast enough so it seems there's no immediate need to look into doing
that.
2022-05-03 21:16:07 -04:00
Ville Skyttä f17e5a27c9
style(bash): out is not an array variable, do not refer to it as such (#1684)
For legacy bash completions, similarly as commit
4f0facbcee is for bash completions v2.

As a side effect, fixes test suite with shellcheck 0.8.0 installed;
apparently the 0.7.0 that's in GitHub Actions' ubuntu-latest at the
moment does not flag the array quoting related issue that was provoked
from 0.8.0 before this change.
2022-05-02 21:41:07 -04:00
Ville Skyttä 09d6ba690f
perf(bash-v2): standard completion optimizations (#1683)
Refactor to remove two loops over the entire list of candidates.

Format descriptions only for completions that are actually going to be
displayed, instead of for all candidates.

Format descriptions inline in completions array, removing need for a
command substitution/subshell and a printf escape per displayed
completion.
2022-05-02 21:00:51 -04:00
Ville Skyttä 4f0facbcee
style(bash-v2): out is not an array variable, do not refer to it as such (#1681)
Even though this to my surprise works, it doesn't accomplish anything
but some confusion. Remove it.
2022-04-27 22:27:52 -04:00
Ville Skyttä 2722a75ba3
perf(bash-v2): use backslash escape string expansion for tab (#1682)
Using a command substitution, i.e. a subshell, with `printf` is
expensive for this purpose. For example `__*_format_comp_descriptions`
is run once for each completion candidate; the expense adds up and
shows when there are a lot of them.
2022-04-27 22:02:30 -04:00
Daniel Nguyen d8184d3269
Fix typo sh completion docs (#1678) 2022-04-26 20:39:55 -04:00
dependabot[bot] b9460ccc12
Bump codelytv/pr-size-labeler from 1.8.0 to 1.8.1 (#1661)
Bumps [codelytv/pr-size-labeler](https://github.com/codelytv/pr-size-labeler) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/codelytv/pr-size-labeler/releases)
- [Commits](https://github.com/codelytv/pr-size-labeler/compare/v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: codelytv/pr-size-labeler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-21 08:20:16 -04:00
Miloš Živković 89d7b832c7
Add Polygon Edge as a project using Cobra (#1672) 2022-04-20 10:23:27 -04:00
John Schnake 68b6b24f0c
Add ability to mark flags as required or exclusive as a group (#1654)
This change adds two features for dealing with flags:
 - requiring flags be provided as a group (or not at all)
 - requiring flags be mutually exclusive of each other

By utilizing the flag annotations we can mark which flag groups
a flag is a part of and during the parsing process we track which
ones we have seen or not.

A flag may be a part of multiple groups. The list of flags and the
type of group (required together or exclusive) make it a unique group.

Signed-off-by: John Schnake <jschnake@vmware.com>
2022-04-17 16:04:57 -05:00
Paul Chesnais bf6cb5804d
Wrap printf tab with quotes (#1665)
Without this, slightly older versions of zsh fail to correctly parse the output of the __complete
command. Tested that with zsh 5.0.2 and zsh 5.8. Since this is just correctly quoting the output of
a command, it shouldn't cause any compatibility issues.
2022-04-14 00:30:27 -04:00
John McBride 9d15fe657a
Update stale-bot (#1609)
- Only label issues after feb 01, 2022
- Apply lifecycle/stale after 60 days
- Close issue and apply lifecycle/rotten after another 30 days

Signed-off-by: John McBride <jmcbride@vmware.com>
2022-04-08 11:46:22 -06:00
Unai Martinez-Corral 5271cf4342
ci/test: RICHGO_FORCE_COLOR (#1647) 2022-03-29 20:05:24 -04:00
John McBride ab42c937ec
Adds size labeler GitHub action (#1610)
Signed-off-by: John McBride <jmcbride@vmware.com>
2022-03-29 16:56:24 -06:00
dependabot[bot] 52e6099aea
Bump actions/checkout from 2 to 3 (#1619)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-26 09:50:12 -06:00
dependabot[bot] 5414d3d45d
Bump golangci/golangci-lint-action from 2 to 3.1.0 (#1615)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 2 to 3.1.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v2...v3.1.0)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-25 09:46:21 -06:00
dependabot[bot] cf0df73277
Bump actions/labeler from 3 to 4 (#1620)
Bumps [actions/labeler](https://github.com/actions/labeler) from 3 to 4.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-25 09:45:15 -06:00
dependabot[bot] 3723151d17
Bump actions/cache from 2 to 3 (#1640)
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-25 09:44:51 -06:00
dependabot[bot] 1568491a09
Bump actions/stale from 1 to 5 (#1618)
Bumps [actions/stale](https://github.com/actions/stale) from 1 to 5.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v1...v5)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-25 09:44:32 -06:00
Neville Bokdawalla d622355c84
Changed branch name in the cobra generator link to 'main' (#1645) 2022-03-24 19:20:54 -04:00
Avinash Upadhyaya K R 03c3eb73f8
Add Kubescape to projects (#1642) 2022-03-21 13:44:18 -04:00
Paul Meyer 3a1795bc25
Fix Command.Context comment (#1639) 2022-03-21 13:35:35 -04:00
Joshua Carpeggiani f848943afd
Add Command.SetContext (#1551)
Increases flexibility in how Contexts can be used with Cobra.
2022-03-18 06:01:58 -04:00
Simon Ser 5d066b77b5
Introduce FixedCompletions (#1574)
Example usage:

    choices := []string{"choice1", "choice2", "choice3"}
    cmd.RegisterFlagCompletionFunc(cobra.FixedCompletions(choices, ShellCompDirectiveNoFileComp))
2022-03-17 21:37:54 -04:00
Marc Khouzam 94e552d8d6
Add backwards-compatibility tests for legacyArgs() (#1547)
These tests make sure we don't break backwards-compatibility with
respect to the current behaviour of legacyArgs().

See #1500 for the back-story.

Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
2022-03-17 21:36:47 -04:00
Ondrej Sika 8cc7be2119
feat: Add how to load completions in your current zsh session (#1608) 2022-03-17 17:55:16 -04:00
Unai Martinez-Corral 65b1195d6e
ci: test on Golang 1.18 (#1635) 2022-03-17 06:26:10 -04:00
John Schnake 37463cff2c
Remove CHANGELOG.md as it isn't updated (#1634)
Fixes #1442

Signed-off-by: John Schnake <jschnake@vmware.com>
2022-03-16 09:34:01 -06:00
cui fliter 81d27c8f8d
fix some typos (#1625)
* fix some typos

Signed-off-by: cuishuang <imcusg@gmail.com>
2022-03-14 07:05:53 -04:00
John McBride 5b2b9e9f61
Removes viper dependency by removing cobra/ CLI tool (#1604)
The cobra bootstrapping CLI tool has moved to
https://github.com/spf13/cobra-cli

Signed-off-by: John McBride <jmcbride@vmware.com>
2022-03-10 08:19:35 -07:00
umarcor 9369465955 labeler: fix syntax 2022-03-09 12:34:54 -05:00
John McBride e1b831e5c2
Updates labeler for new labels (#1613)
Signed-off-by: John McBride <jmcbride@vmware.com>
2022-03-08 17:10:09 -07:00
Marc Khouzam 8267283cfe
Add MAINTAINERS file (alphabetical order) (#1545)
This should help the community know who they can turn to, but also
give credit to the maintainers for all their hard work.

Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
2022-02-28 08:24:45 -07:00
Hannah Troisi 6d2dc43606
Add Pixie to projects. (#1581) 2022-02-24 14:51:17 -05:00
Shyim a599632379
Fix install command (#1576) 2022-02-17 10:17:44 -07:00
Marian Steinbach 7cabfeb8f8
Update Go Doc link and badge (#1593)
Use `pkg.go.dev` instead of `godoc.org`
2022-02-16 15:17:17 -07:00
J.R. Hill e04ec72550
Bump license year to 2022 in golden files (#1575) 2022-01-06 13:58:09 -07:00
dependabot[bot] cb9d7b1cec
Bump github.com/spf13/viper from 1.10.0 to 1.10.1 (#1567)
Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.10.0 to 1.10.1.
- [Release notes](https://github.com/spf13/viper/releases)
- [Commits](https://github.com/spf13/viper/compare/v1.10.0...v1.10.1)

---
updated-dependencies:
- dependency-name: github.com/spf13/viper
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Note: For historical context on this viper dependency bump, please refer to https://github.com/spf13/cobra/pull/1539

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John McBride <jmcbride@vmware.com>
2021-12-20 21:00:40 -07:00
dependabot[bot] 178edbb247
Bump github.com/spf13/viper from 1.9.0 to 1.10.0 (#1561)
Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/spf13/viper/releases)
- [Commits](https://github.com/spf13/viper/compare/v1.9.0...v1.10.0)

---
updated-dependencies:
- dependency-name: github.com/spf13/viper
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-14 11:22:51 -07:00
Marc Khouzam 9054739e08
Remove __complete cmd for program without subcmds (#1563)
Fixes #1562

Programs that don't have sub-commands can accept any number of args.
However, when doing shell completion for such programs, within the
__complete code this very __complete command makes it that the program
suddenly has a sub-command, and the call to Find() -> legacyArgs() will
then return an error if there are more than one argument on the
command-line being completed.

To avoid this, we first remove the __complete command in such a case so
as to get back to having no sub-commands.

Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
2021-12-14 11:22:22 -07:00
John McBride 19c9c74384
Always include the os package import when generating the root command (#1557)
Signed-off-by: John McBride <jmcbride@vmware.com>
2021-12-09 14:47:27 -07:00
dependabot[bot] 01e05b8ea1
Bump github.com/spf13/viper from 1.8.1 to 1.9.0 (#1554)
Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.8.1 to 1.9.0.
- [Release notes](https://github.com/spf13/viper/releases)
- [Commits](https://github.com/spf13/viper/compare/v1.8.1...v1.9.0)

---
updated-dependencies:
- dependency-name: github.com/spf13/viper
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-08 11:56:37 -07:00
Unai Martinez-Corral 36bff0a4d5
fix root.go.golden (#1552) 2021-12-07 16:24:06 -07:00
Stefan Weil 1854bb5c96
Fix some typos (mostly found by codespell) (#1514)
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-12-07 16:06:52 -07:00