Skip to content

Releases: UrsaDK/getopts_long

1.3.0

18 Dec 10:53
b745fcd
Compare
Choose a tag to compare

Special thanks to @billyzkid, as this release is almost entirely based on his contributions, including the PRs he submitted and the issues he highlighted.

New:

  • Adds support for auto-detection of arguments supplied in nested functions.

Fixed:

  • Resolves "unbound variable" errors when getopts_long is used with set -u
  • Aligns the behaviour of OPTARG between the builtin getopts and getopts_long
  • Upgrades all tests to use declare instead of echo

Full Changelog: 1.2.3...1.3.0

1.2.3

14 Dec 18:47
449d7d1
Compare
Choose a tag to compare
  • Fixed support for OPTSPEC without short options in verbose mode (OPTSPEC string starting with a space).
  • Fixed hyphen and double-hyphen handling with short options to match bash getopts.
  • Improved performance by migrating away from bash regex engine in favour of bash globbing.
  • Updated documentation.
  • Refactored test helper to support consistent output line referencing and bash regex matching.
  • Updated GitHub actions to the latest version and re-enabled codecov integration.

Full Changelog: 1.2.2...1.2.3

1.2.2

07 May 11:42
Compare
Choose a tag to compare

A long overdue maintenance update that:

  • Improves usability and performance of the support scripts
  • Upgrades kcov and shellcheck tools to the latest version
  • Cleans up and improves documentation
  • Simplifies docker entry points
  • Fixes CI pipeline

1.2.1

15 May 09:47
e4894c0
Compare
Choose a tag to compare

A quick bug fix, hot on the heels of the last minor release:

  • Drastically reduced the size of the docker image
  • Fixed broken file links in Codecov reports
  • Running ./bin/docker from a branch will no longer override local copy of umkadk/getopts_long:latest
  • Implemented shellcheck checks and fixes for all support scripts
  • Re-enabled previously disabled tests

1.2.0

12 May 14:53
9f9be02
Compare
Choose a tag to compare

This releases focusses on upgrading getopts_long continuous integration environment.

It adds all of the following features:

  • a local test environment provided by docker;
  • support for shellcheck, bats, and kcov;
  • shortcuts for docker and test commands (see ./bin);
  • validation of the pushed code via GitHub Actions;
  • integration with Docker Hub and Codecov.

It fixes a number of outstanding issues:

  • test scrips are no longer dependant on git command;
  • documentation has been updated to include better installation instructions.

1.1.0

20 Jan 15:40
Compare
Choose a tag to compare

getopts_long is a pure BASH "upgrade" on top of the built-in getopts. It is written in pure BASH, has no external dependencies, and provides support for GNU-style long options:

  • --option
  • --option value
  • --option=value.

As of this release getopt_long is 100% compatible with the built-in getopts, and can be used as its drop-in replacement.

1.0.0

13 Jan 10:23
Compare
Choose a tag to compare

Command line parsing in bash scripts is rarely a simple job. The built-in getopts only supports single-character option, and I often find myself wishing for GNU style long options...

getups_long is an "upgrade" to the built-in getopts, which supports the following long options on top of everything the builtin getups already does:

  • --option
  • --option value
  • --option=value