vendor: github.com/urfave/cli v1.22.9
The regression in v1.22.2 has been resolved, so we can drop the replace rule and use the latest v1.22.x version. full diff: https://github.com/urfave/cli/compare/v1.22.1...v1.22.9 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
a3a2d14ecc
commit
5bb47fb956
6
go.mod
6
go.mod
@ -50,7 +50,7 @@ require (
|
|||||||
github.com/sirupsen/logrus v1.8.1
|
github.com/sirupsen/logrus v1.8.1
|
||||||
github.com/stretchr/testify v1.7.1
|
github.com/stretchr/testify v1.7.1
|
||||||
github.com/tchap/go-patricia/v2 v2.3.1
|
github.com/tchap/go-patricia/v2 v2.3.1
|
||||||
github.com/urfave/cli v1.22.2
|
github.com/urfave/cli v1.22.9
|
||||||
github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5
|
github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5
|
||||||
go.etcd.io/bbolt v1.3.6
|
go.etcd.io/bbolt v1.3.6
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.32.0
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.32.0
|
||||||
@ -135,7 +135,3 @@ require (
|
|||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect
|
sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect
|
||||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
// When updating replace rules, make sure to also update the rules in integration/client/go.mod and api/go.mod
|
|
||||||
// urfave/cli must be <= v1.22.1 due to a regression: https://github.com/urfave/cli/issues/1092
|
|
||||||
replace github.com/urfave/cli => github.com/urfave/cli v1.22.1
|
|
||||||
|
6
go.sum
6
go.sum
@ -908,8 +908,12 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1
|
|||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=
|
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=
|
||||||
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
||||||
github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY=
|
github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
||||||
|
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
||||||
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
|
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
|
github.com/urfave/cli v1.22.9 h1:cv3/KhXGBGjEXLC4bH0sLuJ9BewaAbpk5oyMOveu4pw=
|
||||||
|
github.com/urfave/cli v1.22.9/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
|
github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
|
||||||
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
|
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
|
||||||
github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
|
github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
|
||||||
|
@ -65,17 +65,9 @@ require (
|
|||||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
// use the containerd module from this repository instead of downloading
|
||||||
// use the containerd module from this repository instead of downloading
|
//
|
||||||
//
|
// IMPORTANT: this replace rule ONLY replaces containerd itself; dependencies
|
||||||
// IMPORTANT: this replace rule ONLY replaces containerd itself; dependencies
|
// in the "require" section above are still taken into account for version
|
||||||
// in the "require" section above are still taken into account for version
|
// resolution if newer.
|
||||||
// resolution if newer.
|
replace github.com/containerd/containerd => ../../
|
||||||
github.com/containerd/containerd => ../../
|
|
||||||
|
|
||||||
// Replace rules below must be kept in sync with the main go.mod file at the
|
|
||||||
// root, because that's the actual version expected by the "containerd/containerd"
|
|
||||||
// dependency above.
|
|
||||||
// urfave/cli must be <= v1.22.1 due to a regression: https://github.com/urfave/cli/issues/1092
|
|
||||||
github.com/urfave/cli => github.com/urfave/cli v1.22.1
|
|
||||||
)
|
|
||||||
|
@ -645,6 +645,8 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1
|
|||||||
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=
|
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=
|
||||||
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
||||||
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
|
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
|
github.com/urfave/cli v1.22.9/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
|
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
|
||||||
github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
|
github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
|
||||||
github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
|
github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
|
||||||
|
2
vendor/github.com/urfave/cli/.gitignore
generated
vendored
2
vendor/github.com/urfave/cli/.gitignore
generated
vendored
@ -1,3 +1,5 @@
|
|||||||
*.coverprofile
|
*.coverprofile
|
||||||
|
coverage.txt
|
||||||
node_modules/
|
node_modules/
|
||||||
vendor
|
vendor
|
||||||
|
.idea
|
||||||
|
35
vendor/github.com/urfave/cli/.travis.yml
generated
vendored
35
vendor/github.com/urfave/cli/.travis.yml
generated
vendored
@ -1,35 +0,0 @@
|
|||||||
language: go
|
|
||||||
sudo: false
|
|
||||||
dist: bionic
|
|
||||||
osx_image: xcode10
|
|
||||||
go:
|
|
||||||
- 1.11.x
|
|
||||||
- 1.12.x
|
|
||||||
- 1.13.x
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
|
|
||||||
env:
|
|
||||||
GO111MODULE=on
|
|
||||||
GOPROXY=https://proxy.golang.org
|
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- node_modules
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- go get github.com/urfave/gfmrun/cmd/gfmrun
|
|
||||||
- go get golang.org/x/tools/cmd/goimports
|
|
||||||
- npm install markdown-toc
|
|
||||||
- go mod tidy
|
|
||||||
|
|
||||||
script:
|
|
||||||
- go run build.go vet
|
|
||||||
- go run build.go test
|
|
||||||
- go run build.go gfmrun
|
|
||||||
- go run build.go toc
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
|
504
vendor/github.com/urfave/cli/CHANGELOG.md
generated
vendored
504
vendor/github.com/urfave/cli/CHANGELOG.md
generated
vendored
@ -1,504 +0,0 @@
|
|||||||
# Change Log
|
|
||||||
|
|
||||||
**ATTN**: This project uses [semantic versioning](http://semver.org/).
|
|
||||||
|
|
||||||
## [Unreleased]
|
|
||||||
|
|
||||||
## [1.22.1] - 2019-09-11
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
* Hide output of hidden commands on man pages in [urfave/cli/pull/889](https://github.com/urfave/cli/pull/889) via [@crosbymichael](https://github.com/crosbymichael)
|
|
||||||
* Don't generate fish completion for hidden commands [urfave/cli/pull/891](https://github.com/urfave/891) via [@saschagrunert](https://github.com/saschagrunert)
|
|
||||||
* Using short flag names for required flags throws an error in [urfave/cli/pull/890](https://github.com/urfave/cli/pull/890) via [@asahasrabuddhe](https://github.com/asahasrabuddhe)
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
* Remove flag code generation logic, legacy python test runner in [urfave/cli/pull/883](https://github.com/urfave/cli/pull/883) via [@asahasrabuddhe](https://github.com/asahasrabuddhe)
|
|
||||||
* Enable Go Modules support, drop support for `Go 1.10` add support for `Go 1.13` in [urfave/cli/pull/885](https://github.com/urfave/cli/pull/885) via [@asahasrabuddhe](https://github.com/asahasrabuddhe)
|
|
||||||
|
|
||||||
## [1.22.0] - 2019-09-07
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
* Fix Subcommands not falling back to `app.ExitEventHandler` in [urfave/cli/pull/856](https://github.com/urfave/cli/pull/856) via [@FaranIdo](https://github.com/FaranIdo)
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
* Clarify that altsrc supports both TOML and JSON in [urfave/cli/pull/774](https://github.com/urfave/cli/pull/774) via [@whereswaldon](https://github.com/whereswaldon)
|
|
||||||
* Made the exit code example more clear in [urfave/cli/pull/823](https://github.com/urfave/cli/pull/823) via [@xordspar0](https://github.com/xordspar0)
|
|
||||||
* Removed the use of python for internal flag generation in [urfave/cli/pull/836](https://github.com/urfave/cli/pull/836) via [@asahasrabuddhe](https://github.com/asahasrabuddhe)
|
|
||||||
* Changed the supported go versions to `1.10`, `1.11`, `1.12` in [urfave/cli/pull/843](https://github.com/urfave/cli/pull/843) via [@lafriks](https://github.com/lafriks)
|
|
||||||
* Changed the v1 releases section in the readme in [urfave/cli/pull/862](https://github.com/urfave/cli/pull/862) via [@russoj88](https://github.com/russoj88)
|
|
||||||
* Cleaned up go modules in [urfave/cli/pull/874](https://github.com/urfave/cli/pull/874) via [@saschagrunert](https://github.com/saschagrunert)
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
* Added `UseShortOptionHandling` for combining short flags in [urfave/cli/pull/735](https://github.com/urfave/cli/pull/735) via [@rliebz](https://github.com/rliebz)
|
|
||||||
* Added support for flags bash completion in [urfave/cli/pull/808](https://github.com/urfave/cli/pull/808) via [@yogeshlonkar](https://github.com/yogeshlonkar)
|
|
||||||
* Added the `TakesFile` indicator to flag in [urfave/cli/pull/851](https://github.com/urfave/cli/pull/851) via [@saschagrunert](https://github.com/saschagrunert)
|
|
||||||
* Added fish shell completion support in [urfave/cli/pull/848](https://github.com/urfave/cli/pull/848) via [@saschagrunert](https://github.com/saschagrunert)
|
|
||||||
|
|
||||||
## [1.21.0] - 2019-08-02
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
* Fix using "slice" flag types with `EnvVar` in [urfave/cli/pull/687](https://github.com/urfave/cli/pull/687) via [@joshuarubin](https://github.com/joshuarubin)
|
|
||||||
* Fix regression of `SkipFlagParsing` behavior in [urfave/cli/pull/697](https://github.com/urfave/cli/pull/697) via [@jszwedko](https://github.com/jszwedko)
|
|
||||||
* Fix handling `ShortOptions` and `SkipArgReorder` in [urfave/cli/pull/686](https://github.com/urfave/cli/pull/686) via [@baude](https://github.com/baude)
|
|
||||||
* Fix args reordering when bool flags are present in [urfave/cli/pull/712](https://github.com/urfave/cli/pull/712) via [@windler](https://github.com/windler)
|
|
||||||
* Fix parsing of short options in [urfave/cli/pull/758](https://github.com/urfave/cli/pull/758) via [@vrothberg](https://github.com/vrothberg)
|
|
||||||
* Fix unaligned indents for the command help messages in [urfave/cli/pull/806](https://github.com/urfave/cli/pull/806) via [@mingrammer](https://github.com/mingrammer)
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
* Cleaned up help output in [urfave/cli/pull/664](https://github.com/urfave/cli/pull/664) via [@maguro](https://github.com/maguro)
|
|
||||||
* Remove redundant nil checks in [urfave/cli/pull/773](https://github.com/urfave/cli/pull/773) via [@teresy](https://github.com/teresy)
|
|
||||||
* Case is now considered when sorting strings in [urfave/cli/pull/676](https://github.com/urfave/cli/pull/676) via [@rliebz](https://github.com/rliebz)
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
* Added _"required flags"_ support in [urfave/cli/pull/819](https://github.com/urfave/cli/pull/819) via [@lynncyrin](https://github.com/lynncyrin/)
|
|
||||||
* Backport JSON `InputSource` to v1 in [urfave/cli/pull/598](https://github.com/urfave/cli/pull/598) via [@jszwedko](https://github.com/jszwedko)
|
|
||||||
* Allow more customization of flag help strings in [urfave/cli/pull/661](https://github.com/urfave/cli/pull/661) via [@rliebz](https://github.com/rliebz)
|
|
||||||
* Allow custom `ExitError` handler function in [urfave/cli/pull/628](https://github.com/urfave/cli/pull/628) via [@phinnaeus](https://github.com/phinnaeus)
|
|
||||||
* Allow loading a variable from a file in [urfave/cli/pull/675](https://github.com/urfave/cli/pull/675) via [@jmccann](https://github.com/jmccann)
|
|
||||||
* Allow combining short bool names in [urfave/cli/pull/684](https://github.com/urfave/cli/pull/684) via [@baude](https://github.com/baude)
|
|
||||||
* Added test coverage to context in [urfave/cli/pull/788](https://github.com/urfave/cli/pull/788) via [@benzvan](https://github.com/benzvan)
|
|
||||||
* Added go module support in [urfave/cli/pull/831](https://github.com/urfave/cli/pull/831) via [@saschagrunert](https://github.com/saschagrunert)
|
|
||||||
|
|
||||||
## [1.20.0] - 2017-08-10
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
* `HandleExitCoder` is now correctly iterates over all errors in
|
|
||||||
a `MultiError`. The exit code is the exit code of the last error or `1` if
|
|
||||||
there are no `ExitCoder`s in the `MultiError`.
|
|
||||||
* Fixed YAML file loading on Windows (previously would fail validate the file path)
|
|
||||||
* Subcommand `Usage`, `Description`, `ArgsUsage`, `OnUsageError` correctly
|
|
||||||
propogated
|
|
||||||
* `ErrWriter` is now passed downwards through command structure to avoid the
|
|
||||||
need to redefine it
|
|
||||||
* Pass `Command` context into `OnUsageError` rather than parent context so that
|
|
||||||
all fields are avaiable
|
|
||||||
* Errors occuring in `Before` funcs are no longer double printed
|
|
||||||
* Use `UsageText` in the help templates for commands and subcommands if
|
|
||||||
defined; otherwise build the usage as before (was previously ignoring this
|
|
||||||
field)
|
|
||||||
* `IsSet` and `GlobalIsSet` now correctly return whether a flag is set if
|
|
||||||
a program calls `Set` or `GlobalSet` directly after flag parsing (would
|
|
||||||
previously only return `true` if the flag was set during parsing)
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
* No longer exit the program on command/subcommand error if the error raised is
|
|
||||||
not an `OsExiter`. This exiting behavior was introduced in 1.19.0, but was
|
|
||||||
determined to be a regression in functionality. See [the
|
|
||||||
PR](https://github.com/urfave/cli/pull/595) for discussion.
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
* `CommandsByName` type was added to make it easy to sort `Command`s by name,
|
|
||||||
alphabetically
|
|
||||||
* `altsrc` now handles loading of string and int arrays from TOML
|
|
||||||
* Support for definition of custom help templates for `App` via
|
|
||||||
`CustomAppHelpTemplate`
|
|
||||||
* Support for arbitrary key/value fields on `App` to be used with
|
|
||||||
`CustomAppHelpTemplate` via `ExtraInfo`
|
|
||||||
* `HelpFlag`, `VersionFlag`, and `BashCompletionFlag` changed to explictly be
|
|
||||||
`cli.Flag`s allowing for the use of custom flags satisfying the `cli.Flag`
|
|
||||||
interface to be used.
|
|
||||||
|
|
||||||
|
|
||||||
## [1.19.1] - 2016-11-21
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Fixes regression introduced in 1.19.0 where using an `ActionFunc` as
|
|
||||||
the `Action` for a command would cause it to error rather than calling the
|
|
||||||
function. Should not have a affected declarative cases using `func(c
|
|
||||||
*cli.Context) err)`.
|
|
||||||
- Shell completion now handles the case where the user specifies
|
|
||||||
`--generate-bash-completion` immediately after a flag that takes an argument.
|
|
||||||
Previously it call the application with `--generate-bash-completion` as the
|
|
||||||
flag value.
|
|
||||||
|
|
||||||
## [1.19.0] - 2016-11-19
|
|
||||||
### Added
|
|
||||||
- `FlagsByName` was added to make it easy to sort flags (e.g. `sort.Sort(cli.FlagsByName(app.Flags))`)
|
|
||||||
- A `Description` field was added to `App` for a more detailed description of
|
|
||||||
the application (similar to the existing `Description` field on `Command`)
|
|
||||||
- Flag type code generation via `go generate`
|
|
||||||
- Write to stderr and exit 1 if action returns non-nil error
|
|
||||||
- Added support for TOML to the `altsrc` loader
|
|
||||||
- `SkipArgReorder` was added to allow users to skip the argument reordering.
|
|
||||||
This is useful if you want to consider all "flags" after an argument as
|
|
||||||
arguments rather than flags (the default behavior of the stdlib `flag`
|
|
||||||
library). This is backported functionality from the [removal of the flag
|
|
||||||
reordering](https://github.com/urfave/cli/pull/398) in the unreleased version
|
|
||||||
2
|
|
||||||
- For formatted errors (those implementing `ErrorFormatter`), the errors will
|
|
||||||
be formatted during output. Compatible with `pkg/errors`.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Raise minimum tested/supported Go version to 1.2+
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Consider empty environment variables as set (previously environment variables
|
|
||||||
with the equivalent of `""` would be skipped rather than their value used).
|
|
||||||
- Return an error if the value in a given environment variable cannot be parsed
|
|
||||||
as the flag type. Previously these errors were silently swallowed.
|
|
||||||
- Print full error when an invalid flag is specified (which includes the invalid flag)
|
|
||||||
- `App.Writer` defaults to `stdout` when `nil`
|
|
||||||
- If no action is specified on a command or app, the help is now printed instead of `panic`ing
|
|
||||||
- `App.Metadata` is initialized automatically now (previously was `nil` unless initialized)
|
|
||||||
- Correctly show help message if `-h` is provided to a subcommand
|
|
||||||
- `context.(Global)IsSet` now respects environment variables. Previously it
|
|
||||||
would return `false` if a flag was specified in the environment rather than
|
|
||||||
as an argument
|
|
||||||
- Removed deprecation warnings to STDERR to avoid them leaking to the end-user
|
|
||||||
- `altsrc`s import paths were updated to use `gopkg.in/urfave/cli.v1`. This
|
|
||||||
fixes issues that occurred when `gopkg.in/urfave/cli.v1` was imported as well
|
|
||||||
as `altsrc` where Go would complain that the types didn't match
|
|
||||||
|
|
||||||
## [1.18.1] - 2016-08-28
|
|
||||||
### Fixed
|
|
||||||
- Removed deprecation warnings to STDERR to avoid them leaking to the end-user (backported)
|
|
||||||
|
|
||||||
## [1.18.0] - 2016-06-27
|
|
||||||
### Added
|
|
||||||
- `./runtests` test runner with coverage tracking by default
|
|
||||||
- testing on OS X
|
|
||||||
- testing on Windows
|
|
||||||
- `UintFlag`, `Uint64Flag`, and `Int64Flag` types and supporting code
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Use spaces for alignment in help/usage output instead of tabs, making the
|
|
||||||
output alignment consistent regardless of tab width
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Printing of command aliases in help text
|
|
||||||
- Printing of visible flags for both struct and struct pointer flags
|
|
||||||
- Display the `help` subcommand when using `CommandCategories`
|
|
||||||
- No longer swallows `panic`s that occur within the `Action`s themselves when
|
|
||||||
detecting the signature of the `Action` field
|
|
||||||
|
|
||||||
## [1.17.1] - 2016-08-28
|
|
||||||
### Fixed
|
|
||||||
- Removed deprecation warnings to STDERR to avoid them leaking to the end-user
|
|
||||||
|
|
||||||
## [1.17.0] - 2016-05-09
|
|
||||||
### Added
|
|
||||||
- Pluggable flag-level help text rendering via `cli.DefaultFlagStringFunc`
|
|
||||||
- `context.GlobalBoolT` was added as an analogue to `context.GlobalBool`
|
|
||||||
- Support for hiding commands by setting `Hidden: true` -- this will hide the
|
|
||||||
commands in help output
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- `Float64Flag`, `IntFlag`, and `DurationFlag` default values are no longer
|
|
||||||
quoted in help text output.
|
|
||||||
- All flag types now include `(default: {value})` strings following usage when a
|
|
||||||
default value can be (reasonably) detected.
|
|
||||||
- `IntSliceFlag` and `StringSliceFlag` usage strings are now more consistent
|
|
||||||
with non-slice flag types
|
|
||||||
- Apps now exit with a code of 3 if an unknown subcommand is specified
|
|
||||||
(previously they printed "No help topic for...", but still exited 0. This
|
|
||||||
makes it easier to script around apps built using `cli` since they can trust
|
|
||||||
that a 0 exit code indicated a successful execution.
|
|
||||||
- cleanups based on [Go Report Card
|
|
||||||
feedback](https://goreportcard.com/report/github.com/urfave/cli)
|
|
||||||
|
|
||||||
## [1.16.1] - 2016-08-28
|
|
||||||
### Fixed
|
|
||||||
- Removed deprecation warnings to STDERR to avoid them leaking to the end-user
|
|
||||||
|
|
||||||
## [1.16.0] - 2016-05-02
|
|
||||||
### Added
|
|
||||||
- `Hidden` field on all flag struct types to omit from generated help text
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- `BashCompletionFlag` (`--enable-bash-completion`) is now omitted from
|
|
||||||
generated help text via the `Hidden` field
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- handling of error values in `HandleAction` and `HandleExitCoder`
|
|
||||||
|
|
||||||
## [1.15.0] - 2016-04-30
|
|
||||||
### Added
|
|
||||||
- This file!
|
|
||||||
- Support for placeholders in flag usage strings
|
|
||||||
- `App.Metadata` map for arbitrary data/state management
|
|
||||||
- `Set` and `GlobalSet` methods on `*cli.Context` for altering values after
|
|
||||||
parsing.
|
|
||||||
- Support for nested lookup of dot-delimited keys in structures loaded from
|
|
||||||
YAML.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- The `App.Action` and `Command.Action` now prefer a return signature of
|
|
||||||
`func(*cli.Context) error`, as defined by `cli.ActionFunc`. If a non-nil
|
|
||||||
`error` is returned, there may be two outcomes:
|
|
||||||
- If the error fulfills `cli.ExitCoder`, then `os.Exit` will be called
|
|
||||||
automatically
|
|
||||||
- Else the error is bubbled up and returned from `App.Run`
|
|
||||||
- Specifying an `Action` with the legacy return signature of
|
|
||||||
`func(*cli.Context)` will produce a deprecation message to stderr
|
|
||||||
- Specifying an `Action` that is not a `func` type will produce a non-zero exit
|
|
||||||
from `App.Run`
|
|
||||||
- Specifying an `Action` func that has an invalid (input) signature will
|
|
||||||
produce a non-zero exit from `App.Run`
|
|
||||||
|
|
||||||
### Deprecated
|
|
||||||
- <a name="deprecated-cli-app-runandexitonerror"></a>
|
|
||||||
`cli.App.RunAndExitOnError`, which should now be done by returning an error
|
|
||||||
that fulfills `cli.ExitCoder` to `cli.App.Run`.
|
|
||||||
- <a name="deprecated-cli-app-action-signature"></a> the legacy signature for
|
|
||||||
`cli.App.Action` of `func(*cli.Context)`, which should now have a return
|
|
||||||
signature of `func(*cli.Context) error`, as defined by `cli.ActionFunc`.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Added missing `*cli.Context.GlobalFloat64` method
|
|
||||||
|
|
||||||
## [1.14.0] - 2016-04-03 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- Codebeat badge
|
|
||||||
- Support for categorization via `CategorizedHelp` and `Categories` on app.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Use `filepath.Base` instead of `path.Base` in `Name` and `HelpName`.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Ensure version is not shown in help text when `HideVersion` set.
|
|
||||||
|
|
||||||
## [1.13.0] - 2016-03-06 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- YAML file input support.
|
|
||||||
- `NArg` method on context.
|
|
||||||
|
|
||||||
## [1.12.0] - 2016-02-17 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- Custom usage error handling.
|
|
||||||
- Custom text support in `USAGE` section of help output.
|
|
||||||
- Improved help messages for empty strings.
|
|
||||||
- AppVeyor CI configuration.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Removed `panic` from default help printer func.
|
|
||||||
- De-duping and optimizations.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Correctly handle `Before`/`After` at command level when no subcommands.
|
|
||||||
- Case of literal `-` argument causing flag reordering.
|
|
||||||
- Environment variable hints on Windows.
|
|
||||||
- Docs updates.
|
|
||||||
|
|
||||||
## [1.11.1] - 2015-12-21 (backfilled 2016-04-25)
|
|
||||||
### Changed
|
|
||||||
- Use `path.Base` in `Name` and `HelpName`
|
|
||||||
- Export `GetName` on flag types.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Flag parsing when skipping is enabled.
|
|
||||||
- Test output cleanup.
|
|
||||||
- Move completion check to account for empty input case.
|
|
||||||
|
|
||||||
## [1.11.0] - 2015-11-15 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- Destination scan support for flags.
|
|
||||||
- Testing against `tip` in Travis CI config.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Go version in Travis CI config.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Removed redundant tests.
|
|
||||||
- Use correct example naming in tests.
|
|
||||||
|
|
||||||
## [1.10.2] - 2015-10-29 (backfilled 2016-04-25)
|
|
||||||
### Fixed
|
|
||||||
- Remove unused var in bash completion.
|
|
||||||
|
|
||||||
## [1.10.1] - 2015-10-21 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- Coverage and reference logos in README.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Use specified values in help and version parsing.
|
|
||||||
- Only display app version and help message once.
|
|
||||||
|
|
||||||
## [1.10.0] - 2015-10-06 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- More tests for existing functionality.
|
|
||||||
- `ArgsUsage` at app and command level for help text flexibility.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Honor `HideHelp` and `HideVersion` in `App.Run`.
|
|
||||||
- Remove juvenile word from README.
|
|
||||||
|
|
||||||
## [1.9.0] - 2015-09-08 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- `FullName` on command with accompanying help output update.
|
|
||||||
- Set default `$PROG` in bash completion.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Docs formatting.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Removed self-referential imports in tests.
|
|
||||||
|
|
||||||
## [1.8.0] - 2015-06-30 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- Support for `Copyright` at app level.
|
|
||||||
- `Parent` func at context level to walk up context lineage.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Global flag processing at top level.
|
|
||||||
|
|
||||||
## [1.7.1] - 2015-06-11 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- Aggregate errors from `Before`/`After` funcs.
|
|
||||||
- Doc comments on flag structs.
|
|
||||||
- Include non-global flags when checking version and help.
|
|
||||||
- Travis CI config updates.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Ensure slice type flags have non-nil values.
|
|
||||||
- Collect global flags from the full command hierarchy.
|
|
||||||
- Docs prose.
|
|
||||||
|
|
||||||
## [1.7.0] - 2015-05-03 (backfilled 2016-04-25)
|
|
||||||
### Changed
|
|
||||||
- `HelpPrinter` signature includes output writer.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Specify go 1.1+ in docs.
|
|
||||||
- Set `Writer` when running command as app.
|
|
||||||
|
|
||||||
## [1.6.0] - 2015-03-23 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- Multiple author support.
|
|
||||||
- `NumFlags` at context level.
|
|
||||||
- `Aliases` at command level.
|
|
||||||
|
|
||||||
### Deprecated
|
|
||||||
- `ShortName` at command level.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Subcommand help output.
|
|
||||||
- Backward compatible support for deprecated `Author` and `Email` fields.
|
|
||||||
- Docs regarding `Names`/`Aliases`.
|
|
||||||
|
|
||||||
## [1.5.0] - 2015-02-20 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- `After` hook func support at app and command level.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Use parsed context when running command as subcommand.
|
|
||||||
- Docs prose.
|
|
||||||
|
|
||||||
## [1.4.1] - 2015-01-09 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- Support for hiding `-h / --help` flags, but not `help` subcommand.
|
|
||||||
- Stop flag parsing after `--`.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Help text for generic flags to specify single value.
|
|
||||||
- Use double quotes in output for defaults.
|
|
||||||
- Use `ParseInt` instead of `ParseUint` for int environment var values.
|
|
||||||
- Use `0` as base when parsing int environment var values.
|
|
||||||
|
|
||||||
## [1.4.0] - 2014-12-12 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- Support for environment variable lookup "cascade".
|
|
||||||
- Support for `Stdout` on app for output redirection.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Print command help instead of app help in `ShowCommandHelp`.
|
|
||||||
|
|
||||||
## [1.3.1] - 2014-11-13 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- Docs and example code updates.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Default `-v / --version` flag made optional.
|
|
||||||
|
|
||||||
## [1.3.0] - 2014-08-10 (backfilled 2016-04-25)
|
|
||||||
### Added
|
|
||||||
- `FlagNames` at context level.
|
|
||||||
- Exposed `VersionPrinter` var for more control over version output.
|
|
||||||
- Zsh completion hook.
|
|
||||||
- `AUTHOR` section in default app help template.
|
|
||||||
- Contribution guidelines.
|
|
||||||
- `DurationFlag` type.
|
|
||||||
|
|
||||||
## [1.2.0] - 2014-08-02
|
|
||||||
### Added
|
|
||||||
- Support for environment variable defaults on flags plus tests.
|
|
||||||
|
|
||||||
## [1.1.0] - 2014-07-15
|
|
||||||
### Added
|
|
||||||
- Bash completion.
|
|
||||||
- Optional hiding of built-in help command.
|
|
||||||
- Optional skipping of flag parsing at command level.
|
|
||||||
- `Author`, `Email`, and `Compiled` metadata on app.
|
|
||||||
- `Before` hook func support at app and command level.
|
|
||||||
- `CommandNotFound` func support at app level.
|
|
||||||
- Command reference available on context.
|
|
||||||
- `GenericFlag` type.
|
|
||||||
- `Float64Flag` type.
|
|
||||||
- `BoolTFlag` type.
|
|
||||||
- `IsSet` flag helper on context.
|
|
||||||
- More flag lookup funcs at context level.
|
|
||||||
- More tests & docs.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Help template updates to account for presence/absence of flags.
|
|
||||||
- Separated subcommand help template.
|
|
||||||
- Exposed `HelpPrinter` var for more control over help output.
|
|
||||||
|
|
||||||
## [1.0.0] - 2013-11-01
|
|
||||||
### Added
|
|
||||||
- `help` flag in default app flag set and each command flag set.
|
|
||||||
- Custom handling of argument parsing errors.
|
|
||||||
- Command lookup by name at app level.
|
|
||||||
- `StringSliceFlag` type and supporting `StringSlice` type.
|
|
||||||
- `IntSliceFlag` type and supporting `IntSlice` type.
|
|
||||||
- Slice type flag lookups by name at context level.
|
|
||||||
- Export of app and command help functions.
|
|
||||||
- More tests & docs.
|
|
||||||
|
|
||||||
## 0.1.0 - 2013-07-22
|
|
||||||
### Added
|
|
||||||
- Initial implementation.
|
|
||||||
|
|
||||||
[Unreleased]: https://github.com/urfave/cli/compare/v1.22.1...HEAD
|
|
||||||
[1.22.1]: https://github.com/urfave/cli/compare/v1.22.0...v1.22.1
|
|
||||||
[1.22.0]: https://github.com/urfave/cli/compare/v1.21.0...v1.22.0
|
|
||||||
[1.21.0]: https://github.com/urfave/cli/compare/v1.20.0...v1.21.0
|
|
||||||
[1.20.0]: https://github.com/urfave/cli/compare/v1.19.1...v1.20.0
|
|
||||||
[1.19.1]: https://github.com/urfave/cli/compare/v1.19.0...v1.19.1
|
|
||||||
[1.19.0]: https://github.com/urfave/cli/compare/v1.18.0...v1.19.0
|
|
||||||
[1.18.0]: https://github.com/urfave/cli/compare/v1.17.0...v1.18.0
|
|
||||||
[1.17.0]: https://github.com/urfave/cli/compare/v1.16.0...v1.17.0
|
|
||||||
[1.16.0]: https://github.com/urfave/cli/compare/v1.15.0...v1.16.0
|
|
||||||
[1.15.0]: https://github.com/urfave/cli/compare/v1.14.0...v1.15.0
|
|
||||||
[1.14.0]: https://github.com/urfave/cli/compare/v1.13.0...v1.14.0
|
|
||||||
[1.13.0]: https://github.com/urfave/cli/compare/v1.12.0...v1.13.0
|
|
||||||
[1.12.0]: https://github.com/urfave/cli/compare/v1.11.1...v1.12.0
|
|
||||||
[1.11.1]: https://github.com/urfave/cli/compare/v1.11.0...v1.11.1
|
|
||||||
[1.11.0]: https://github.com/urfave/cli/compare/v1.10.2...v1.11.0
|
|
||||||
[1.10.2]: https://github.com/urfave/cli/compare/v1.10.1...v1.10.2
|
|
||||||
[1.10.1]: https://github.com/urfave/cli/compare/v1.10.0...v1.10.1
|
|
||||||
[1.10.0]: https://github.com/urfave/cli/compare/v1.9.0...v1.10.0
|
|
||||||
[1.9.0]: https://github.com/urfave/cli/compare/v1.8.0...v1.9.0
|
|
||||||
[1.8.0]: https://github.com/urfave/cli/compare/v1.7.1...v1.8.0
|
|
||||||
[1.7.1]: https://github.com/urfave/cli/compare/v1.7.0...v1.7.1
|
|
||||||
[1.7.0]: https://github.com/urfave/cli/compare/v1.6.0...v1.7.0
|
|
||||||
[1.6.0]: https://github.com/urfave/cli/compare/v1.5.0...v1.6.0
|
|
||||||
[1.5.0]: https://github.com/urfave/cli/compare/v1.4.1...v1.5.0
|
|
||||||
[1.4.1]: https://github.com/urfave/cli/compare/v1.4.0...v1.4.1
|
|
||||||
[1.4.0]: https://github.com/urfave/cli/compare/v1.3.1...v1.4.0
|
|
||||||
[1.3.1]: https://github.com/urfave/cli/compare/v1.3.0...v1.3.1
|
|
||||||
[1.3.0]: https://github.com/urfave/cli/compare/v1.2.0...v1.3.0
|
|
||||||
[1.2.0]: https://github.com/urfave/cli/compare/v1.1.0...v1.2.0
|
|
||||||
[1.1.0]: https://github.com/urfave/cli/compare/v1.0.0...v1.1.0
|
|
||||||
[1.0.0]: https://github.com/urfave/cli/compare/v0.1.0...v1.0.0
|
|
18
vendor/github.com/urfave/cli/CONTRIBUTING.md
generated
vendored
18
vendor/github.com/urfave/cli/CONTRIBUTING.md
generated
vendored
@ -1,18 +0,0 @@
|
|||||||
## Contributing
|
|
||||||
|
|
||||||
Use @urfave/cli to ping the maintainers.
|
|
||||||
|
|
||||||
Feel free to put up a pull request to fix a bug or maybe add a feature. We will
|
|
||||||
give it a code review and make sure that it does not break backwards
|
|
||||||
compatibility. If collaborators agree that it is in line with
|
|
||||||
the vision of the project, we will work with you to get the code into
|
|
||||||
a mergeable state and merge it into the master branch.
|
|
||||||
|
|
||||||
If you have contributed something significant to the project, we will most
|
|
||||||
likely add you as a collaborator. As a collaborator you are given the ability
|
|
||||||
to merge others pull requests. It is very important that new code does not
|
|
||||||
break existing code, so be careful about what code you do choose to merge.
|
|
||||||
|
|
||||||
If you feel like you have contributed to the project but have not yet been added
|
|
||||||
as a collaborator, we probably forgot to add you :sweat_smile:. Please open an
|
|
||||||
issue!
|
|
1525
vendor/github.com/urfave/cli/README.md
generated
vendored
1525
vendor/github.com/urfave/cli/README.md
generated
vendored
File diff suppressed because it is too large
Load Diff
15
vendor/github.com/urfave/cli/app.go
generated
vendored
15
vendor/github.com/urfave/cli/app.go
generated
vendored
@ -121,7 +121,6 @@ func NewApp() *App {
|
|||||||
HelpName: filepath.Base(os.Args[0]),
|
HelpName: filepath.Base(os.Args[0]),
|
||||||
Usage: "A new cli application",
|
Usage: "A new cli application",
|
||||||
UsageText: "",
|
UsageText: "",
|
||||||
Version: "0.0.0",
|
|
||||||
BashComplete: DefaultAppComplete,
|
BashComplete: DefaultAppComplete,
|
||||||
Action: helpCommand.Action,
|
Action: helpCommand.Action,
|
||||||
Compiled: compileTime(),
|
Compiled: compileTime(),
|
||||||
@ -159,6 +158,10 @@ func (a *App) Setup() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if a.Version == "" {
|
||||||
|
a.HideVersion = true
|
||||||
|
}
|
||||||
|
|
||||||
if !a.HideVersion {
|
if !a.HideVersion {
|
||||||
a.appendFlag(VersionFlag)
|
a.appendFlag(VersionFlag)
|
||||||
}
|
}
|
||||||
@ -199,12 +202,12 @@ func (a *App) Run(arguments []string) (err error) {
|
|||||||
// always appends the completion flag at the end of the command
|
// always appends the completion flag at the end of the command
|
||||||
shellComplete, arguments := checkShellCompleteFlag(a, arguments)
|
shellComplete, arguments := checkShellCompleteFlag(a, arguments)
|
||||||
|
|
||||||
_, err = a.newFlagSet()
|
set, err := a.newFlagSet()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
set, err := parseIter(a, arguments[1:])
|
err = parseIter(set, a, arguments[1:], shellComplete)
|
||||||
nerr := normalizeFlags(a.Flags, set)
|
nerr := normalizeFlags(a.Flags, set)
|
||||||
context := NewContext(a, set, nil)
|
context := NewContext(a, set, nil)
|
||||||
if nerr != nil {
|
if nerr != nil {
|
||||||
@ -260,8 +263,6 @@ func (a *App) Run(arguments []string) (err error) {
|
|||||||
if a.Before != nil {
|
if a.Before != nil {
|
||||||
beforeErr := a.Before(context)
|
beforeErr := a.Before(context)
|
||||||
if beforeErr != nil {
|
if beforeErr != nil {
|
||||||
_, _ = fmt.Fprintf(a.Writer, "%v\n\n", beforeErr)
|
|
||||||
_ = ShowAppHelp(context)
|
|
||||||
a.handleExitCoder(context, beforeErr)
|
a.handleExitCoder(context, beforeErr)
|
||||||
err = beforeErr
|
err = beforeErr
|
||||||
return err
|
return err
|
||||||
@ -322,12 +323,12 @@ func (a *App) RunAsSubcommand(ctx *Context) (err error) {
|
|||||||
}
|
}
|
||||||
a.Commands = newCmds
|
a.Commands = newCmds
|
||||||
|
|
||||||
_, err = a.newFlagSet()
|
set, err := a.newFlagSet()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
set, err := parseIter(a, ctx.Args().Tail())
|
err = parseIter(set, a, ctx.Args().Tail(), ctx.shellComplete)
|
||||||
nerr := normalizeFlags(a.Flags, set)
|
nerr := normalizeFlags(a.Flags, set)
|
||||||
context := NewContext(a, set, ctx)
|
context := NewContext(a, set, ctx)
|
||||||
|
|
||||||
|
11
vendor/github.com/urfave/cli/appveyor.yml
generated
vendored
11
vendor/github.com/urfave/cli/appveyor.yml
generated
vendored
@ -6,18 +6,23 @@ image: Visual Studio 2017
|
|||||||
|
|
||||||
clone_folder: c:\gopath\src\github.com\urfave\cli
|
clone_folder: c:\gopath\src\github.com\urfave\cli
|
||||||
|
|
||||||
|
cache:
|
||||||
|
- node_modules
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
GOPATH: C:\gopath
|
GOPATH: C:\gopath
|
||||||
GOVERSION: 1.11.x
|
GOVERSION: 1.11.x
|
||||||
|
GO111MODULE: on
|
||||||
|
GOPROXY: https://proxy.golang.org
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- set PATH=%GOPATH%\bin;C:\go\bin;%PATH%
|
- set PATH=%GOPATH%\bin;C:\go\bin;%PATH%
|
||||||
- go version
|
- go version
|
||||||
- go env
|
- go env
|
||||||
- go get github.com/urfave/gfmrun/...
|
- go get github.com/urfave/gfmrun/cmd/gfmrun
|
||||||
- go get -v -t ./...
|
- go mod vendor
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
- go run build.go vet
|
- go run build.go vet
|
||||||
- go run build.go test
|
- go run build.go test
|
||||||
- go run build.go gfmrun
|
- go run build.go gfmrun docs/v1/manual.md
|
||||||
|
99
vendor/github.com/urfave/cli/command.go
generated
vendored
99
vendor/github.com/urfave/cli/command.go
generated
vendored
@ -114,7 +114,7 @@ func (c Command) Run(ctx *Context) (err error) {
|
|||||||
c.UseShortOptionHandling = true
|
c.UseShortOptionHandling = true
|
||||||
}
|
}
|
||||||
|
|
||||||
set, err := c.parseFlags(ctx.Args().Tail())
|
set, err := c.parseFlags(ctx.Args().Tail(), ctx.shellComplete)
|
||||||
|
|
||||||
context := NewContext(ctx.App, set, ctx)
|
context := NewContext(ctx.App, set, ctx)
|
||||||
context.Command = c
|
context.Command = c
|
||||||
@ -161,7 +161,6 @@ func (c Command) Run(ctx *Context) (err error) {
|
|||||||
if c.Before != nil {
|
if c.Before != nil {
|
||||||
err = c.Before(context)
|
err = c.Before(context)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
_ = ShowCommandHelp(context, c.Name)
|
|
||||||
context.App.handleExitCoder(context, err)
|
context.App.handleExitCoder(context, err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -179,7 +178,7 @@ func (c Command) Run(ctx *Context) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Command) parseFlags(args Args) (*flag.FlagSet, error) {
|
func (c *Command) parseFlags(args Args, shellComplete bool) (*flag.FlagSet, error) {
|
||||||
if c.SkipFlagParsing {
|
if c.SkipFlagParsing {
|
||||||
set, err := c.newFlagSet()
|
set, err := c.newFlagSet()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -190,10 +189,15 @@ func (c *Command) parseFlags(args Args) (*flag.FlagSet, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !c.SkipArgReorder {
|
if !c.SkipArgReorder {
|
||||||
args = reorderArgs(args)
|
args = reorderArgs(c.Flags, args)
|
||||||
}
|
}
|
||||||
|
|
||||||
set, err := parseIter(c, args)
|
set, err := c.newFlagSet()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = parseIter(set, c, args, shellComplete)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -214,34 +218,79 @@ func (c *Command) useShortOptionHandling() bool {
|
|||||||
return c.UseShortOptionHandling
|
return c.UseShortOptionHandling
|
||||||
}
|
}
|
||||||
|
|
||||||
// reorderArgs moves all flags before arguments as this is what flag expects
|
// reorderArgs moves all flags (via reorderedArgs) before the rest of
|
||||||
func reorderArgs(args []string) []string {
|
// the arguments (remainingArgs) as this is what flag expects.
|
||||||
var nonflags, flags []string
|
func reorderArgs(commandFlags []Flag, args []string) []string {
|
||||||
|
var remainingArgs, reorderedArgs []string
|
||||||
|
|
||||||
readFlagValue := false
|
nextIndexMayContainValue := false
|
||||||
for i, arg := range args {
|
for i, arg := range args {
|
||||||
if arg == "--" {
|
|
||||||
nonflags = append(nonflags, args[i:]...)
|
// if we're expecting an option-value, check if this arg is a value, in
|
||||||
|
// which case it should be re-ordered next to its associated flag
|
||||||
|
if nextIndexMayContainValue && !argIsFlag(commandFlags, arg) {
|
||||||
|
nextIndexMayContainValue = false
|
||||||
|
reorderedArgs = append(reorderedArgs, arg)
|
||||||
|
} else if arg == "--" {
|
||||||
|
// don't reorder any args after the -- delimiter As described in the POSIX spec:
|
||||||
|
// https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02
|
||||||
|
// > Guideline 10:
|
||||||
|
// > The first -- argument that is not an option-argument should be accepted
|
||||||
|
// > as a delimiter indicating the end of options. Any following arguments
|
||||||
|
// > should be treated as operands, even if they begin with the '-' character.
|
||||||
|
|
||||||
|
// make sure the "--" delimiter itself is at the start
|
||||||
|
remainingArgs = append([]string{"--"}, remainingArgs...)
|
||||||
|
remainingArgs = append(remainingArgs, args[i+1:]...)
|
||||||
break
|
break
|
||||||
}
|
// checks if this is an arg that should be re-ordered
|
||||||
|
} else if argIsFlag(commandFlags, arg) {
|
||||||
|
// we have determined that this is a flag that we should re-order
|
||||||
|
reorderedArgs = append(reorderedArgs, arg)
|
||||||
|
// if this arg does not contain a "=", then the next index may contain the value for this flag
|
||||||
|
nextIndexMayContainValue = !strings.Contains(arg, "=")
|
||||||
|
|
||||||
if readFlagValue && !strings.HasPrefix(arg, "-") && !strings.HasPrefix(arg, "--") {
|
// simply append any remaining args
|
||||||
readFlagValue = false
|
|
||||||
flags = append(flags, arg)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
readFlagValue = false
|
|
||||||
|
|
||||||
if arg != "-" && strings.HasPrefix(arg, "-") {
|
|
||||||
flags = append(flags, arg)
|
|
||||||
|
|
||||||
readFlagValue = !strings.Contains(arg, "=")
|
|
||||||
} else {
|
} else {
|
||||||
nonflags = append(nonflags, arg)
|
remainingArgs = append(remainingArgs, arg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return append(flags, nonflags...)
|
return append(reorderedArgs, remainingArgs...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// argIsFlag checks if an arg is one of our command flags
|
||||||
|
func argIsFlag(commandFlags []Flag, arg string) bool {
|
||||||
|
if arg == "-" || arg == "--"{
|
||||||
|
// `-` is never a flag
|
||||||
|
// `--` is an option-value when following a flag, and a delimiter indicating the end of options in other cases.
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// flags always start with a -
|
||||||
|
if !strings.HasPrefix(arg, "-") {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// this line turns `--flag` into `flag`
|
||||||
|
if strings.HasPrefix(arg, "--") {
|
||||||
|
arg = strings.Replace(arg, "-", "", 2)
|
||||||
|
}
|
||||||
|
// this line turns `-flag` into `flag`
|
||||||
|
if strings.HasPrefix(arg, "-") {
|
||||||
|
arg = strings.Replace(arg, "-", "", 1)
|
||||||
|
}
|
||||||
|
// this line turns `flag=value` into `flag`
|
||||||
|
arg = strings.Split(arg, "=")[0]
|
||||||
|
// look through all the flags, to see if the `arg` is one of our flags
|
||||||
|
for _, flag := range commandFlags {
|
||||||
|
for _, key := range strings.Split(flag.GetName(), ",") {
|
||||||
|
key := strings.TrimSpace(key)
|
||||||
|
if key == arg {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return false if this arg was not one of our flags
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// Names returns the names including short names and aliases.
|
// Names returns the names including short names and aliases.
|
||||||
|
11
vendor/github.com/urfave/cli/context.go
generated
vendored
11
vendor/github.com/urfave/cli/context.go
generated
vendored
@ -87,6 +87,14 @@ func (c *Context) IsSet(name string) bool {
|
|||||||
for _, f := range flags {
|
for _, f := range flags {
|
||||||
eachName(f.GetName(), func(name string) {
|
eachName(f.GetName(), func(name string) {
|
||||||
if isSet, ok := c.setFlags[name]; isSet || !ok {
|
if isSet, ok := c.setFlags[name]; isSet || !ok {
|
||||||
|
// Check if a flag is set
|
||||||
|
if isSet {
|
||||||
|
// If the flag is set, also set its other aliases
|
||||||
|
eachName(f.GetName(), func(name string) {
|
||||||
|
c.setFlags[name] = true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -316,11 +324,12 @@ func checkRequiredFlags(flags []Flag, context *Context) requiredFlagsErr {
|
|||||||
var flagPresent bool
|
var flagPresent bool
|
||||||
var flagName string
|
var flagName string
|
||||||
for _, key := range strings.Split(f.GetName(), ",") {
|
for _, key := range strings.Split(f.GetName(), ",") {
|
||||||
|
key = strings.TrimSpace(key)
|
||||||
if len(key) > 1 {
|
if len(key) > 1 {
|
||||||
flagName = key
|
flagName = key
|
||||||
}
|
}
|
||||||
|
|
||||||
if context.IsSet(strings.TrimSpace(key)) {
|
if context.IsSet(key) {
|
||||||
flagPresent = true
|
flagPresent = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
3
vendor/github.com/urfave/cli/docs.go
generated
vendored
3
vendor/github.com/urfave/cli/docs.go
generated
vendored
@ -1,3 +1,6 @@
|
|||||||
|
//go:build !urfave_cli_no_docs
|
||||||
|
// +build !urfave_cli_no_docs
|
||||||
|
|
||||||
package cli
|
package cli
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
8
vendor/github.com/urfave/cli/flag.go
generated
vendored
8
vendor/github.com/urfave/cli/flag.go
generated
vendored
@ -86,7 +86,7 @@ type RequiredFlag interface {
|
|||||||
type DocGenerationFlag interface {
|
type DocGenerationFlag interface {
|
||||||
Flag
|
Flag
|
||||||
|
|
||||||
// TakesValue returns true of the flag takes a value, otherwise false
|
// TakesValue returns true if the flag takes a value, otherwise false
|
||||||
TakesValue() bool
|
TakesValue() bool
|
||||||
|
|
||||||
// GetUsage returns the usage string for the flag
|
// GetUsage returns the usage string for the flag
|
||||||
@ -338,8 +338,10 @@ func flagFromFileEnv(filePath, envName string) (val string, ok bool) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, fileVar := range strings.Split(filePath, ",") {
|
for _, fileVar := range strings.Split(filePath, ",") {
|
||||||
if data, err := ioutil.ReadFile(fileVar); err == nil {
|
if fileVar != "" {
|
||||||
return string(data), true
|
if data, err := ioutil.ReadFile(fileVar); err == nil {
|
||||||
|
return string(data), true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return "", false
|
return "", false
|
||||||
|
64
vendor/github.com/urfave/cli/flag_int64_slice.go
generated
vendored
64
vendor/github.com/urfave/cli/flag_int64_slice.go
generated
vendored
@ -22,7 +22,12 @@ func (f *Int64Slice) Set(value string) error {
|
|||||||
|
|
||||||
// String returns a readable representation of this value (for usage defaults)
|
// String returns a readable representation of this value (for usage defaults)
|
||||||
func (f *Int64Slice) String() string {
|
func (f *Int64Slice) String() string {
|
||||||
return fmt.Sprintf("%#v", *f)
|
slice := make([]string, len(*f))
|
||||||
|
for i, v := range *f {
|
||||||
|
slice[i] = strconv.FormatInt(v, 10)
|
||||||
|
}
|
||||||
|
|
||||||
|
return strings.Join(slice, ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value returns the slice of ints set by this flag
|
// Value returns the slice of ints set by this flag
|
||||||
@ -110,6 +115,7 @@ func (f Int64SliceFlag) ApplyWithError(set *flag.FlagSet) error {
|
|||||||
}
|
}
|
||||||
set.Var(f.Value, name, f.Usage)
|
set.Var(f.Value, name, f.Usage)
|
||||||
})
|
})
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,11 +137,63 @@ func (c *Context) GlobalInt64Slice(name string) []int64 {
|
|||||||
func lookupInt64Slice(name string, set *flag.FlagSet) []int64 {
|
func lookupInt64Slice(name string, set *flag.FlagSet) []int64 {
|
||||||
f := set.Lookup(name)
|
f := set.Lookup(name)
|
||||||
if f != nil {
|
if f != nil {
|
||||||
parsed, err := (f.Value.(*Int64Slice)).Value(), error(nil)
|
value, ok := f.Value.(*Int64Slice)
|
||||||
if err != nil {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// extract the slice from asserted value
|
||||||
|
parsed := value.Value()
|
||||||
|
|
||||||
|
// extract default value from the flag
|
||||||
|
var defaultVal []int64
|
||||||
|
for _, v := range strings.Split(f.DefValue, ",") {
|
||||||
|
if v != "" {
|
||||||
|
int64Value, err := strconv.ParseInt(v, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
defaultVal = append(defaultVal, int64Value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// if the current value is not equal to the default value
|
||||||
|
// remove the default values from the flag
|
||||||
|
if !isInt64SliceEqual(parsed, defaultVal) {
|
||||||
|
for _, v := range defaultVal {
|
||||||
|
parsed = removeFromInt64Slice(parsed, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
return parsed
|
return parsed
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func removeFromInt64Slice(slice []int64, val int64) []int64 {
|
||||||
|
for i, v := range slice {
|
||||||
|
if v == val {
|
||||||
|
ret := append([]int64{}, slice[:i]...)
|
||||||
|
ret = append(ret, slice[i+1:]...)
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return slice
|
||||||
|
}
|
||||||
|
|
||||||
|
func isInt64SliceEqual(newValue, defaultValue []int64) bool {
|
||||||
|
// If one is nil, the other must also be nil.
|
||||||
|
if (newValue == nil) != (defaultValue == nil) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(newValue) != len(defaultValue) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, v := range newValue {
|
||||||
|
if v != defaultValue[i] {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
64
vendor/github.com/urfave/cli/flag_int_slice.go
generated
vendored
64
vendor/github.com/urfave/cli/flag_int_slice.go
generated
vendored
@ -22,7 +22,12 @@ func (f *IntSlice) Set(value string) error {
|
|||||||
|
|
||||||
// String returns a readable representation of this value (for usage defaults)
|
// String returns a readable representation of this value (for usage defaults)
|
||||||
func (f *IntSlice) String() string {
|
func (f *IntSlice) String() string {
|
||||||
return fmt.Sprintf("%#v", *f)
|
slice := make([]string, len(*f))
|
||||||
|
for i, v := range *f {
|
||||||
|
slice[i] = strconv.Itoa(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
return strings.Join(slice, ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value returns the slice of ints set by this flag
|
// Value returns the slice of ints set by this flag
|
||||||
@ -132,11 +137,62 @@ func (c *Context) GlobalIntSlice(name string) []int {
|
|||||||
func lookupIntSlice(name string, set *flag.FlagSet) []int {
|
func lookupIntSlice(name string, set *flag.FlagSet) []int {
|
||||||
f := set.Lookup(name)
|
f := set.Lookup(name)
|
||||||
if f != nil {
|
if f != nil {
|
||||||
parsed, err := (f.Value.(*IntSlice)).Value(), error(nil)
|
value, ok := f.Value.(*IntSlice)
|
||||||
if err != nil {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return parsed
|
// extract the slice from asserted value
|
||||||
|
slice := value.Value()
|
||||||
|
|
||||||
|
// extract default value from the flag
|
||||||
|
var defaultVal []int
|
||||||
|
for _, v := range strings.Split(f.DefValue, ",") {
|
||||||
|
if v != "" {
|
||||||
|
intValue, err := strconv.Atoi(v)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
defaultVal = append(defaultVal, intValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// if the current value is not equal to the default value
|
||||||
|
// remove the default values from the flag
|
||||||
|
if !isIntSliceEqual(slice, defaultVal) {
|
||||||
|
for _, v := range defaultVal {
|
||||||
|
slice = removeFromIntSlice(slice, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return slice
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func removeFromIntSlice(slice []int, val int) []int {
|
||||||
|
for i, v := range slice {
|
||||||
|
if v == val {
|
||||||
|
ret := append([]int{}, slice[:i]...)
|
||||||
|
ret = append(ret, slice[i+1:]...)
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return slice
|
||||||
|
}
|
||||||
|
|
||||||
|
func isIntSliceEqual(newValue, defaultValue []int) bool {
|
||||||
|
// If one is nil, the other must also be nil.
|
||||||
|
if (newValue == nil) != (defaultValue == nil) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(newValue) != len(defaultValue) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, v := range newValue {
|
||||||
|
if v != defaultValue[i] {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
54
vendor/github.com/urfave/cli/flag_string_slice.go
generated
vendored
54
vendor/github.com/urfave/cli/flag_string_slice.go
generated
vendored
@ -17,7 +17,7 @@ func (f *StringSlice) Set(value string) error {
|
|||||||
|
|
||||||
// String returns a readable representation of this value (for usage defaults)
|
// String returns a readable representation of this value (for usage defaults)
|
||||||
func (f *StringSlice) String() string {
|
func (f *StringSlice) String() string {
|
||||||
return fmt.Sprintf("%s", *f)
|
return strings.Join(*f, ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value returns the slice of strings set by this flag
|
// Value returns the slice of strings set by this flag
|
||||||
@ -128,11 +128,57 @@ func (c *Context) GlobalStringSlice(name string) []string {
|
|||||||
func lookupStringSlice(name string, set *flag.FlagSet) []string {
|
func lookupStringSlice(name string, set *flag.FlagSet) []string {
|
||||||
f := set.Lookup(name)
|
f := set.Lookup(name)
|
||||||
if f != nil {
|
if f != nil {
|
||||||
parsed, err := (f.Value.(*StringSlice)).Value(), error(nil)
|
value, ok := f.Value.(*StringSlice)
|
||||||
if err != nil {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return parsed
|
// extract the slice from asserted value
|
||||||
|
slice := value.Value()
|
||||||
|
|
||||||
|
// extract default value from the flag
|
||||||
|
var defaultVal []string
|
||||||
|
for _, v := range strings.Split(f.DefValue, ",") {
|
||||||
|
defaultVal = append(defaultVal, v)
|
||||||
|
}
|
||||||
|
|
||||||
|
// if the current value is not equal to the default value
|
||||||
|
// remove the default values from the flag
|
||||||
|
if !isStringSliceEqual(slice, defaultVal) {
|
||||||
|
for _, v := range defaultVal {
|
||||||
|
slice = removeFromStringSlice(slice, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return slice
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func removeFromStringSlice(slice []string, val string) []string {
|
||||||
|
for i, v := range slice {
|
||||||
|
if v == val {
|
||||||
|
ret := append([]string{}, slice[:i]...)
|
||||||
|
ret = append(ret, slice[i+1:]...)
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return slice
|
||||||
|
}
|
||||||
|
|
||||||
|
func isStringSliceEqual(newValue, defaultValue []string) bool {
|
||||||
|
// If one is nil, the other must also be nil.
|
||||||
|
if (newValue == nil) != (defaultValue == nil) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(newValue) != len(defaultValue) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, v := range newValue {
|
||||||
|
if v != defaultValue[i] {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
55
vendor/github.com/urfave/cli/help.go
generated
vendored
55
vendor/github.com/urfave/cli/help.go
generated
vendored
@ -47,13 +47,18 @@ type helpPrinter func(w io.Writer, templ string, data interface{})
|
|||||||
// Prints help for the App or Command with custom template function.
|
// Prints help for the App or Command with custom template function.
|
||||||
type helpPrinterCustom func(w io.Writer, templ string, data interface{}, customFunc map[string]interface{})
|
type helpPrinterCustom func(w io.Writer, templ string, data interface{}, customFunc map[string]interface{})
|
||||||
|
|
||||||
// HelpPrinter is a function that writes the help output. If not set a default
|
// HelpPrinter is a function that writes the help output. If not set explicitly,
|
||||||
// is used. The function signature is:
|
// this calls HelpPrinterCustom using only the default template functions.
|
||||||
// func(w io.Writer, templ string, data interface{})
|
//
|
||||||
|
// If custom logic for printing help is required, this function can be
|
||||||
|
// overridden. If the ExtraInfo field is defined on an App, this function
|
||||||
|
// should not be modified, as HelpPrinterCustom will be used directly in order
|
||||||
|
// to capture the extra information.
|
||||||
var HelpPrinter helpPrinter = printHelp
|
var HelpPrinter helpPrinter = printHelp
|
||||||
|
|
||||||
// HelpPrinterCustom is same as HelpPrinter but
|
// HelpPrinterCustom is a function that writes the help output. It is used as
|
||||||
// takes a custom function for template function map.
|
// the default implementation of HelpPrinter, and may be called directly if
|
||||||
|
// the ExtraInfo field is set on an App.
|
||||||
var HelpPrinterCustom helpPrinterCustom = printHelpCustom
|
var HelpPrinterCustom helpPrinterCustom = printHelpCustom
|
||||||
|
|
||||||
// VersionPrinter prints the version for the App
|
// VersionPrinter prints the version for the App
|
||||||
@ -66,20 +71,24 @@ func ShowAppHelpAndExit(c *Context, exitCode int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ShowAppHelp is an action that displays the help.
|
// ShowAppHelp is an action that displays the help.
|
||||||
func ShowAppHelp(c *Context) (err error) {
|
func ShowAppHelp(c *Context) error {
|
||||||
if c.App.CustomAppHelpTemplate == "" {
|
template := c.App.CustomAppHelpTemplate
|
||||||
HelpPrinter(c.App.Writer, AppHelpTemplate, c.App)
|
if template == "" {
|
||||||
return
|
template = AppHelpTemplate
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if c.App.ExtraInfo == nil {
|
||||||
|
HelpPrinter(c.App.Writer, template, c.App)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
customAppData := func() map[string]interface{} {
|
customAppData := func() map[string]interface{} {
|
||||||
if c.App.ExtraInfo == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return map[string]interface{}{
|
return map[string]interface{}{
|
||||||
"ExtraInfo": c.App.ExtraInfo,
|
"ExtraInfo": c.App.ExtraInfo,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
HelpPrinterCustom(c.App.Writer, c.App.CustomAppHelpTemplate, c.App, customAppData())
|
HelpPrinterCustom(c.App.Writer, template, c.App, customAppData())
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,11 +195,13 @@ func ShowCommandHelp(ctx *Context, command string) error {
|
|||||||
|
|
||||||
for _, c := range ctx.App.Commands {
|
for _, c := range ctx.App.Commands {
|
||||||
if c.HasName(command) {
|
if c.HasName(command) {
|
||||||
if c.CustomHelpTemplate != "" {
|
templ := c.CustomHelpTemplate
|
||||||
HelpPrinterCustom(ctx.App.Writer, c.CustomHelpTemplate, c, nil)
|
if templ == "" {
|
||||||
} else {
|
templ = CommandHelpTemplate
|
||||||
HelpPrinter(ctx.App.Writer, CommandHelpTemplate, c)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HelpPrinter(ctx.App.Writer, templ, c)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -238,11 +249,15 @@ func ShowCommandCompletions(ctx *Context, command string) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func printHelpCustom(out io.Writer, templ string, data interface{}, customFunc map[string]interface{}) {
|
// printHelpCustom is the default implementation of HelpPrinterCustom.
|
||||||
|
//
|
||||||
|
// The customFuncs map will be combined with a default template.FuncMap to
|
||||||
|
// allow using arbitrary functions in template rendering.
|
||||||
|
func printHelpCustom(out io.Writer, templ string, data interface{}, customFuncs map[string]interface{}) {
|
||||||
funcMap := template.FuncMap{
|
funcMap := template.FuncMap{
|
||||||
"join": strings.Join,
|
"join": strings.Join,
|
||||||
}
|
}
|
||||||
for key, value := range customFunc {
|
for key, value := range customFuncs {
|
||||||
funcMap[key] = value
|
funcMap[key] = value
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,7 +276,7 @@ func printHelpCustom(out io.Writer, templ string, data interface{}, customFunc m
|
|||||||
}
|
}
|
||||||
|
|
||||||
func printHelp(out io.Writer, templ string, data interface{}) {
|
func printHelp(out io.Writer, templ string, data interface{}) {
|
||||||
printHelpCustom(out, templ, data, nil)
|
HelpPrinterCustom(out, templ, data, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkVersion(c *Context) bool {
|
func checkVersion(c *Context) bool {
|
||||||
|
54
vendor/github.com/urfave/cli/parse.go
generated
vendored
54
vendor/github.com/urfave/cli/parse.go
generated
vendored
@ -11,45 +11,59 @@ type iterativeParser interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// To enable short-option handling (e.g., "-it" vs "-i -t") we have to
|
// To enable short-option handling (e.g., "-it" vs "-i -t") we have to
|
||||||
// iteratively catch parsing errors. This way we achieve LR parsing without
|
// iteratively catch parsing errors. This way we achieve LR parsing without
|
||||||
// transforming any arguments. Otherwise, there is no way we can discriminate
|
// transforming any arguments. Otherwise, there is no way we can discriminate
|
||||||
// combined short options from common arguments that should be left untouched.
|
// combined short options from common arguments that should be left untouched.
|
||||||
func parseIter(ip iterativeParser, args []string) (*flag.FlagSet, error) {
|
// Pass `shellComplete` to continue parsing options on failure during shell
|
||||||
|
// completion when, the user-supplied options may be incomplete.
|
||||||
|
func parseIter(set *flag.FlagSet, ip iterativeParser, args []string, shellComplete bool) error {
|
||||||
for {
|
for {
|
||||||
set, err := ip.newFlagSet()
|
err := set.Parse(args)
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = set.Parse(args)
|
|
||||||
if !ip.useShortOptionHandling() || err == nil {
|
if !ip.useShortOptionHandling() || err == nil {
|
||||||
return set, err
|
if shellComplete {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
errStr := err.Error()
|
errStr := err.Error()
|
||||||
trimmed := strings.TrimPrefix(errStr, "flag provided but not defined: ")
|
trimmed := strings.TrimPrefix(errStr, "flag provided but not defined: -")
|
||||||
if errStr == trimmed {
|
if errStr == trimmed {
|
||||||
return nil, err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// regenerate the initial args with the split short opts
|
// regenerate the initial args with the split short opts
|
||||||
newArgs := []string{}
|
argsWereSplit := false
|
||||||
for i, arg := range args {
|
for i, arg := range args {
|
||||||
if arg != trimmed {
|
// skip args that are not part of the error message
|
||||||
newArgs = append(newArgs, arg)
|
if name := strings.TrimLeft(arg, "-"); name != trimmed {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
shortOpts := splitShortOptions(set, trimmed)
|
// if we can't split, the error was accurate
|
||||||
|
shortOpts := splitShortOptions(set, arg)
|
||||||
if len(shortOpts) == 1 {
|
if len(shortOpts) == 1 {
|
||||||
return nil, err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// add each short option and all remaining arguments
|
// swap current argument with the split version
|
||||||
newArgs = append(newArgs, shortOpts...)
|
args = append(args[:i], append(shortOpts, args[i+1:]...)...)
|
||||||
newArgs = append(newArgs, args[i+1:]...)
|
argsWereSplit = true
|
||||||
args = newArgs
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This should be an impossible to reach code path, but in case the arg
|
||||||
|
// splitting failed to happen, this will prevent infinite loops
|
||||||
|
if !argsWereSplit {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Since custom parsing failed, replace the flag set before retrying
|
||||||
|
newSet, err := ip.newFlagSet()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*set = *newSet
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
3
vendor/modules.txt
vendored
3
vendor/modules.txt
vendored
@ -379,7 +379,7 @@ github.com/syndtr/gocapability/capability
|
|||||||
# github.com/tchap/go-patricia/v2 v2.3.1
|
# github.com/tchap/go-patricia/v2 v2.3.1
|
||||||
## explicit; go 1.16
|
## explicit; go 1.16
|
||||||
github.com/tchap/go-patricia/v2/patricia
|
github.com/tchap/go-patricia/v2/patricia
|
||||||
# github.com/urfave/cli v1.22.2 => github.com/urfave/cli v1.22.1
|
# github.com/urfave/cli v1.22.9
|
||||||
## explicit; go 1.11
|
## explicit; go 1.11
|
||||||
github.com/urfave/cli
|
github.com/urfave/cli
|
||||||
# github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5
|
# github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5
|
||||||
@ -758,4 +758,3 @@ sigs.k8s.io/structured-merge-diff/v4/value
|
|||||||
# sigs.k8s.io/yaml v1.3.0
|
# sigs.k8s.io/yaml v1.3.0
|
||||||
## explicit; go 1.12
|
## explicit; go 1.12
|
||||||
sigs.k8s.io/yaml
|
sigs.k8s.io/yaml
|
||||||
# github.com/urfave/cli => github.com/urfave/cli v1.22.1
|
|
||||||
|
Loading…
Reference in New Issue
Block a user