cmdr
is a POSIX/GNU style, command-line UI (CLI) Go library.
It is a getopt-like parser of command-line options,
be compatible with the getopt_long
command line UI, which is an extension of the syntax recommended
by POSIX.
There are couples of enhancements beyond the standard
library flag
.
There is a full Options Store
(configurations) for your
hierarchy configuration data too.
To review the image frames, go surfing at #1 (comment)
Youtube - 李宗盛2013最新單曲 山丘 官方完整版音檔 / Jonathan Lee - Hill CHT + ENU
The better choice is importing with go-modules enabled:
import "github.com/hedzr/cmdr"
See our extras:
- cmdr-docs: documentations (Working)
- cmdr-addons: a new daemon plugin
dex
for linux/macOS/windows. - cmdr-examples: collects the samples for cmdr
-
docs (WIP):
- english documentation NOT completed yet
- documentation at: https://hedzr.github.io/cmdr-docs/
-
v1.7.30
- added docker hub image for examples/fluent
-
v1.7.29
- added docker image for examples/fluent
- added cmdr.InDockerEnv
- small fixes
-
v1.7.28
- added cmdr.NewLoggerConfigWith for better smoothing transfer cmdr internal status to log/logex.
- added cmdr.InDevelopingTime
- better output in PassThruChar(--) detected
- doc and added SetTraceMode/SetDebugMode
-
v1.7.27
- added:
WithHelpScreenHooks
,GetRemainArgs
, ... - improved:
WithPagerEnabled
,InTesting
, ... - fixed: missed initializing for
logger-level
inOption Store
sometimes. - tests
- added:
-
v1.7.25
- New feature: loading command definition from config file
- fixed bugs
-
v1.7.23
- A new feature: the builtin pluggable cmdr-addon/plugin.
make build && bin/fluent --help && bin/fluent dx
- added:
WithPluginLocations(locations...)
,WithExtensionsLocations(locations...)
- A new feature: the builtin pluggable cmdr-addon/plugin.
-
v1.7.21
- A new feature: the builtin pluggable extensions (see also: cmdr-examples/flags )
-
v1.7.11
- update: new log.Logger instance in log.GetLogger
- fixed: ReadPassword in windows
-
v1.7.10
- fixed: too much empty lines in help screen
-
v1.7.9
- right align multi-lines desc string in help screen
- added new envvars: HELP, NO_COLOR (
HELP=1 app some sub cmd
==app some sub cmd --help
)
-
v1.7.8
- tabStop in help screen will be autosize now
- deprecated at next minor release (v1.8+):
WithHelpTabStop()
- deprecated at next minor release (v1.8+): plugins/daemon
- BREAK: some two methods in the interface
Painter
has been changed.
-
v1.7.7
- update deps to improve logging supports
- deprecated:
WithLogex()
, as its replacement,WithLogx()
has a better generic logging interface (hedzr/log.Logger)
-
v1.7.6:
- using hedzr/log and remove other logging dependencies.
- added
WithLogx(logger)
: integrating with your logger (vialog.Logger
interface)
-
v1.7.5:
- move some helper function to
tool
sub-package
- move some helper function to
-
For more information to refer to CHANGELOG
Old README.md: README.old.md
Here is a docker build for cmdr/examples/fluent so that you can run it without go building or downloading the release files:
# from Docker Hub:
$ docker run -it --rm hedzr/cmdr-fluent
$ docker run -it --rm hedzr/cmdr-fluent --help
# from Github Packages (please following the guide of GitHub Packages Site):
$ docker run -it --rm docker.pkg.github.com/hedzr/cmdr/cmdr-fluent
$ docker run -it --rm docker.pkg.github.com/hedzr/cmdr/cmdr-fluent --help
-
short
simple codes with structured data style. -
demo
normal demo with external config files. -
wget-demo
partial-covered for GNUwget
. -
fluent
demostrates how to define your command-ui with the fluent api style. -
a demo to show you how to migrate from go
flag
smoothly. -
cmdr-http2
http2 server with daemon supports, graceful shutdown -
awesome-tool
awesome-tool
is a cli app that fetch the repo stars and generate a markdown summary, accordingly with most of awesome-xxx list in github (such as awesome-go).
See Also the examples index: Examples.md (zh-cn TODO: Examples.zh-cn.md)
- https://github.com/hedzr/consul-tags
- https://github.com/hedzr/ini-op
- https://github.com/hedzr/awesome-tool
- austr
- Issue me to adding yours
Feel free to issue me bug reports and fixes. Many thanks to all contributors.
JODL (JetBrains OpenSource Development License) is good:
MIT