Useful modules for bash
Shell
Switch branches/tags
Latest commit 7cfdf7d Jul 6, 2016 @vlisivka committed on GitHub Merge pull request #11 from elifarley/patch-1
Removed redundant argument "$?"
Permalink
Failed to load latest commit information.
main/bash-modules
modules/bash-modules-tui
README.md

README.md

bash-modules

Simple module system for bash.

Main goal of the project is to provide developers with set of bash subroutines, which are:

  • useful;
  • work in strict mode (set -ue);
  • correctly handle strings with spaces and special characters;
  • covered by test cases;
  • use as little external commands as possible;
  • well documented.

Example:

#!/bin/bash
#>>> hw.sh - hello, world! See --help for details.

. import.sh strict log arguments

#>
#> Environment variables:

#>
#> HW_NAME -  name of someone to greet. Default value: "world".
NAME="${HW_NAME:-world}"

#>
#> Functions:

#>
#> hw NAME - greet someone by name.
hw() {
  local NAME="${1:?ERROR: Argument is required: a name to greet.}"
  info "Hello, $NAME!"
}

#>
#> main - main function.
main() {
  #>>
  #>> Usage:
  #>> hw.sh [OPTIONS]
  #>>
  #>> Options:
  #>>   * -h | --help - show this text.
  #>>   * --man - show documentation.
  #>>   * -n | --name NAME - name of someone to greet. Default value: "world".
  arguments::parse \
    '-n|--name)NAME;String' \
    -- "$@" || exit 1

  hw "$NAME"
  exit
}

main "$@"

#>
#> See also:
#>   * import.sh --list  - show list of available modules.
#>   * import.sh --usage arguments  - show usage information for