docopt.sh
docopt
Our great sponsors
docopt.sh | docopt | |
---|---|---|
5 | 29 | |
182 | 7,891 | |
- | 0.0% | |
0.0 | 0.0 | |
10 months ago | 27 days ago | |
Python | Python | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
docopt.sh
-
Docopt.sh – Command-Line Argument Parser for Bash 3.2, 4, and 5
I like that this generates readable output that could pass as hand-written code.
The docopt.sh output looks like it went through a JS minifier. Or is there a way to change that? If so I think it should default to that.
https://github.com/andsens/docopt.sh/blob/master/docs/naval_...
-
Programs are dead, and JavaScript has killed them
If you want to avoid having to write your own args parser everytime or think getopt is a pain, you should check out my little project:
https://github.com/andsens/docopt.sh
No dependencies, the code is directly inlined into your script, and you write the args parser by writing the help-text.
-
Beautiful Scripts
Honestly, I left it as a gist because even though it reduces boilerplate, getopts is still not a great flag parser (e.g. only supports single-letter flags, and no type safety or other validation aside from boolean / string). I use it in my shell environment since I have lots of shell functions and I don't care to pull in a "real" parser into my shell, but if I was writing any sort of more complex standalone script I probably wouldn't use it. Check out docopt if you haven't seen it, I've been meaning to give that a whirl at some point.
docopt
- Docopt: Command-line interface description language
-
Building a Command Line Tool with PHP and Symfony Console
Symfony Console closely follows the well-established docopt conventions. Docopt, based on longstanding conventions from help messages and man pages, ensures a consistent and intuitive interface for describing a program's interface. Symfony Console's adherence to docopt conventions guarantees that your command line tools maintain a standardized and predictable user experience, simplifying development and user interaction.
-
CLI user experience case study
You probably already know, but just in case you don't, you might read about http://docopt.org/ It seems to me a lot of your usage ideas could be refinements of / tooling around docopt-style interfaces.
-
Gooey: Turn almost any Python command line program into a full GUI application
http://docopt.org/
Not quite what you asked for, but close: type example invocations to generate the CLI, and just pull the arguments from a dictionary at runtime.
-
Things I've learned about building CLI tools in Python
I've been using docopt to handle CLI arguments for years now.
http://docopt.org/
-
What's up, Python? The GIL removed, a new compiler, optparse deprecated
If you aren't averse to using a third party package, on my personal projects I always found https://github.com/docopt/docopt to be nice.
You can kill 2 birds with one stone by documenting your scripts while also providing the argument structure / parsing.
-
adaszko/complgen: Generate {bash,fish,zsh} completions from a single EBNF-like grammar
As for the implementation differences, complgen uses a trivial DSL that’s everybody is already familiar with more or less because it’s a slightly more rigorous version of what tools usually spit out when you do command --help (projects like docopt even use that for command line arguments parsing). Those happen to be regular languages and therefore can be represented as a Deterministic Finite Automata. complgen compiles the grammars to DFAs, minimizes the DFA and spits out shell-specific shell completions scripts that simply walk the DFA to match and complete the current input.
-
[Media] shrs: a shell that is configurable and extensible in rust
The current completion system has a list of rules of which completions to use at which time. It's purposely simple to make it as flexible as possible. The current things I'm planning is a derive macro like what clap has to generate these rules. I'm also considering introducing a plugin that let's you write rules in the format of docopt
-
Docopt.sh – Command-Line Argument Parser for Bash 3.2, 4, and 5
For anyone unfamiliar, docopt is an established standard for specifying arguments in a script’s doc string. I use it for Python and it’s lovely. You’re going to write a docstring with examples anyway, why not make them functional?
http://docopt.org/
-
I am sick of writing argparse boilerplate code, so I made "duckargs" to do it for me
I like http://docopt.org/ a lot. You seem like someone who might have opinions on that.
What are some alternatives?
bash-cache - Transparent caching layer for bash functions; particularly useful for functions invoked as part of your prompt.
click - Python composable command line interface toolkit
shrc - My bashrc/shrc that supports bash, zsh, busybox ash and even Dash. ( has: OS and shell detection )
Python Fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
typer - Typer, build great CLIs. Easy to code. Based on Python type hints.
Gooey - Turn (almost) any Python command line program into a full GUI application with one line
cement - Application Framework for Python
Argh - An argparse wrapper that doesn't make you say "argh" each time you deal with it.
python-prompt-toolkit - Library for building powerful interactive command line applications in Python
clint - Python Command-line Application Tools
SyncShell - keep your machine's shell history synchronize
asynccli - A CLI framework based on asyncio