Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Read the Docs configuration file for Sphinx projects
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

version: 2


build:
os: ubuntu-24.04
tools:
python: "3.12"
# You can also specify other tool versions:


# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: doc/conf.py
12 changes: 11 additions & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
2.10.1 (TBA)
2.11.0 (2024-05-??)
-------------------

Buxfixes:

* `#!/bin/bash` is no longer the shebang. The more portable `#!/usr/bin/env bash` is used instead (#185).
* Indentation is consistent in validation functions (#143)
* Fixed bug preventing short options to have capital letters (#199)

New features:

* The new Argbash macro `ARGBASH_INDICATE_SUPPLIED` allows you to get information on whether an argument has been explicitly passed on the commandline. Big thanks to Kevin Stravers (@kstrafe) for his heroic effort!
* A new `excised` mode that doesn't contain generated code has been introduced (#186)

2.10.0 (2020-09-22)
-------------------
Expand Down
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@
* But they don't since arguments support is a daunting task, because ...
* `getopt` is discouraged, `getopts` doesn't support long options, there is no widely-accepted `Bash` module to do the task and some solutions don't work on all platforms (Linux, OSX, MSW)...

Give `Argbash` a try and stop being terrorized by those pesky arguments! With Argbash, you will get:
Having Argbash, you can generate interface for your first script in a matter of seconds. See a [termtosvg](https://github.com/nbedos/termtosvg) recording of how `head.sh`, a script with a subset of the `head` command's interface, is created by editing a template provided by `argbash-init`.

![Example](./resources/screencast.svg)

Definitely do give `Argbash` a try, and stop being terrorized by those pesky arguments! With Argbash, you will get:

* Fast, minimalistic declaration of arguments your script expects (see below for supported argument types).
* Scripts generated from definitions once that can be used on all platforms that have `bash`.
Expand Down
2 changes: 2 additions & 0 deletions doc/guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -626,8 +626,10 @@ Plus, there are convenience macros:

* The user forgets to supply value to an optional argument, so the next argument is mistaken for it.
For example, when we leave ``time`` from ``ls --sort time --long /home/me/*``, we get a syntactically valid command-line ``ls --sort --long /home/me/*``, where ``--long`` is identified as value of the argument ``--sort`` instead an argument on its own.
As ``--long`` is a supported argument of ``ls``, both ``no-any-options`` or ``no-local-options`` would catch this error.
* The user intends to pass an optional argument on the command-line (e.g. ``--sort``), but makes a typo, (e.g. ``--srot``), or the script actually doesn't support that argument.
As an unwanted consequence, it is interpreted as a positional argument.
As ``--srot`` is not a supported argument of ``ls``, only ``no-any-options`` would catch this error.

* Make Argbash-powered scripts getopts-compatible:

Expand Down
Loading
Loading