2.11.0 (2025-05-23) ------------------- 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) * Scripts with strict argument checking don't abort when executed with errexit (#163) 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) Incompatible changes (minor): * Archlinux packaging files were removed, because Argbash has a proper Archlinux package, and the redundant code in the project would require maintenance (#179) * The `--wrap` argument of `argbash-init` was removed, as it was not working at all, and its added value is negligible (#144) 2.10.0 (2020-09-22) ------------------- Buxfixes: * `argbash-init` is able to handle empty string as the only argument without being puzzled (#130). * Error handling of script working directory detection now more robust (#134). New features: * Argbash in the container has no longer the terminal output limitation caused by the crlf line ending (#129). Thanks to Felipe Santos (@felipecrs)!. * The `ARG_USE_PROG` implementation was missing. Therefore, it was implemented as `ARG_USE_PROGRAM` using a slightly different interface. 2.9.0 (2020-08-01) ------------------ Buxfixes: * Fixed typo in `argbash-init` and updated obsolete/incaccurate hints (#97). * Fixed incorrect permission of non-script output files (#104). * Increased MacOS compatibility by removing terminator from the `chmod` invocation (#107). New features: * Increased flexibility of the help option (#92). * Improved `argbash-init` script template (#85). * Increased flexibility of the version option (#123). * Added a convenience function for module loading (#119). * Added a possibility to the `argbash` tool to generate the script in-place, exposed as the `-i` option. 2.8.1 (2019-06-30) ------------------ Incompatible changes (minor): * The `DEFINE_SCRIPT_DIR` macro doesn't resolve symlinks as it started to do so in `2.8.0`, use `DEFINE_SCRIPT_DIR_GNU` if you need the functionality. New features (minor): * The help message now contains reference for one-of argument types (#76). Bugfixes: * The environment variables help message has been fixed (#79). * The manpage generation works when long description is supplied (#78). * The `DEFINE_SCRIPT_DIR` macro doesn't use `readlink -e` any more (#74). * Completion generation works when there are no options followed by value (#77). 2.8.0 (2019-01-26) ------------------ New features: * Allow argbash and argbash-init to be run from symbolic links. * Allow scripts generated by argbash-init with complete separation (`-s -s`) to be run from a symbolic link. * Implemented output to generate manpages using the `rst2man` utility (fixes #37). * Introduced the `ARG_VERSION_AUTO` macro. Bugfixes: * Double quotes in help messages are escaped (fixes #61). * Fixed regression that allowed duplicate short options (fixes #58). 2.7.1 (2018-08-15) ------------------ New features: * The bash completion now supports arguments of one-of-restricted values. Bugfixes: * Tests pass when there is no dash shell installed. * The double-dash handling when `--` is the last argument has been improved. * The generated bash completion is now complementing (i.e. not shadowing) the default bash completion. * Docopt fatal regression has been fixed. * Tests were added for docopt output. 2.7.0 (2018-07-19) ------------------ New features: * `ARGBASH_WRAP` works recursively - you can wrap wrapped scripts. * Introduced new output - the strict POSIX shell output. Bugfixes: * Fixed comment of the evaluate_strictness function in commented mode. * `ARG_OPTIONAL_BOOL` won't let you specify other default values than `on` or `off`. * Fixed bash completion containing a leading newline. * Fixed Argbash bash completion generated filename. 2.6.1 (2018-03-04) ------------------ Bugfixes: * Fixed the installation issue related to bash completion. * Allowed docopt and completion output even in case of stdin input and stdout output. 2.6.0 (2018-02-27) ------------------ New features: * Initial support for bash completion. * Introduction of the `--strip` argument to `argbash` (deprecates the `--library option`). * Initial support for `docopt` output. Bugfixes: * Fixed wrapping of scripts with repeated optional arguments. * All scripts + tests are checked by Shellcheck. * The `ARGBASH_WRAP` macro now supports looking for templates in subdirectories. * Documentation expansion. 2.5.1 (2017-12-06) ------------------ Bugfixes: * Fixed argbash-init corner cases (wrong output filename). * Corrected argbash-init hint mode. * Allowed argbash to wrap scripts in files with no extension. * Fixed compatibility with the `-e` (i.e. "strict") mode (fixed #30). 2.5.0 (2017-09-03) ------------------ New features: * The generated shell `case` statement is considerably nicer. * Support for having more Argbash versions simultainously (applies to Argbash version that implement the `make alt(un)install` targets) * Argbash functionality is now encapsulated in shell functions. * API macros have checks against wrong number of arguments supplied. * Short options can be also numeric. * Introduced DIY mode as a preview feature. * A Docker image of argbash is [available on Docker hub](https://hub.docker.com/r/matejak/argbash/). Thanks to [Peter Cummuskey](https://github.com/Tzrlk)))! Bugfixes: * Improved feedback when users provide invalid input (fixed #8, #9). * The underlying code has been cleaned and distributed into multiple files. * Fixed `m4_list_indices` to be consistent with `m4_list_nth`. * Much-improved handling of typed arguments (fixed #25, #26). * Improved documentation. Thanks to [Bianca Tamayo](https://github.com/btamayo)! 2.4.0 (2017-04-08) ------------------ New features: * Implemented getopt-like behavior (so e.g. `-gIinclude` equals to `-g -I include` etc.). * Improved feedback in case of mismatch between expected / received arguments. Bugfixes: * Argbash-powered scripts with positional arguments can be sourced consecutively without having to manually perform variable reset. * Fixed issue #7 with newlines in help strings. * The `argbash.spec` file has been corrected, so there is a hope that Argbash will make it to Fedora Linux distribution. 2.3.0 (2017-02-07) ------------------ New features: * Behavior that raises an error when a script argument's value looks like option - enabled by the `ARG_RESTRICT_VALUES`. New minor features: * `argbash` provides more useful feedback in case of unmatched square brackets in the input * `argbash` in standalone mode now uses the more fresh of the parsing code `.sh` or `.m4` templates (was undocumented, but the `.sh` one was always preferred over the `.m4`). 2.2.3 (2016-12-18) ------------------ New minor features: * `argbash` tries to warn you when it looks like you have made a typo when attempting to use macros. * `argbash` supports commented mode, when the parsing code is explained in detail Bugfixes: * Fixed handling of help messages in case of missing `ARG_HELP` macro 2.2.2 (2016-11-21) ------------------ New minor features: * Added the `--mode` option to `argbash-init`. * Improved help messages for arguments with typed values (experimental). Bugfixes: * Fixed quoting-related issues of the underlying code. 2.2.0 (2016-11-07) ------------------ New features: * Introduced the `argbash-init` simple template generator. * `argbash` can read from stdin. * `ARG_HELP` gains second argument. * Preview support for argument values types. Bugfixes: * Improved defaults indications in help messages. * Overall internal code beautification. 2.1.1 (2016-08-26) ------------------ Bugfixes: * Fixed help messages for the repeated optional args and added connected it to the delim choice. * Fixed the installation process in `resources/Makefile` 2.1.0 (2016-08-26) ------------------ Incompatible changes (minor): * `argbash` option `--standalone` has been renamed to `--library`. New features: * Support for configuration of argument-value delimiters (space and equal sign are supported - `--some-opt=value` as well as `--some-opt value` may work) Bugfixes: * Fixed handling of `argbash-xtoy` in Makefiles for tests/packaging. * Added the `die` function to all generated scripts. * Beautification of the underlying code. * Documentation improvements in the Examples section. 2.0.0 (2016-08-03) ------------------ This release descends from `1.4.2`. Incompatible changes: * The variable name in which argument values are stored is different (lowercase) as the `bash` style guides recommend. Bugfixes: * Fixed a error handling bug in the `argbash-1to2` script. 1.4.2 (2016-08-02) ------------------ Bugfixes: * Fixed the broken `argbash-1to2` script. 1.4.1 (2016-08-02) ------------------ Bugfixes: * Fixed broken `Makefile` that prevented (un)installs. 1.4.0 (2016-08-02) ------------------ New features: * Added the `ARGBASH_SET_INDENT` macro for indentation control. * Created scripts are more compliant to the https://www.shellcheck.net/ tool. * Introduced `argbash-1to2` script for migration to Argbash2 Bugfixes: * Fixed some errors related to displaying help. * Fixed spurious default to `ARG_POSITIONAL_INF`. * Fixed handling of empty defaults. 1.3.0 (2016-07-23) ------------------ New features: * Support for infinitely many (and leftover) arguments. * Partial POSIX shell compatibility. Bugfixes: * Fixed definitions in the parsing part of the script. * Expanded documentation --- expanded info about related projects. 1.2.1 (2016-07-10) ------------------ Bugfixes: * Improved the wrapping of scripts to work with positional args 1.2.0 (2016-07-08) ------------------ New features: * Support for repeated arguments, added specialized macro for --verbose * Support for double dash (separating positional and optional arguments) * Support for multi-valued arguments (with defaults) * Improved generated code so users get more descriptive messages when something goes wrong * The bash code tries to be minimal - only features that are used are supported * Support for wrapping of other Argbash scripts * Support for repeated arguments (s.a. argument `-I` of `gcc`) Bugfixes: * Fixed installation bug when ROOT variable was not treated properly * Improved error reports when number of positional args doesn't match * Improved m4s list implementation * Added `m4_list_contains` 1.1.0 (2015-09-06) ------------------ New features: * Support for positional args with default values. * "Intelligent" shell auto-quoting of macro arguments. * Improvement of standalone parsing code mode.