aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLatchezar Tzvetkoff <[email protected]>2018-08-03 16:59:07 +0300
committerPierre Fenoll <[email protected]>2018-08-03 15:59:07 +0200
commitd05d48e071bf38943340dd9086f615eb7d37d5fb (patch)
tree805ed2ba5e6dbf33d505f43cd7b4d61221953079
parent9fccf3d503188bf324110dcaab4d3cce5edb77e7 (diff)
downloadkerl-d05d48e071bf38943340dd9086f615eb7d37d5fb.tar.gz
kerl-d05d48e071bf38943340dd9086f615eb7d37d5fb.tar.bz2
kerl-d05d48e071bf38943340dd9086f615eb7d37d5fb.zip
Fix Bash completion for Bash 3 (#295)
Well, since Bash 3 lacks the `readarray` (`mapfile`), kerl's completion does not work - and, unfortunately, Яpple still ships Bash 3 as default shell on macOS. In this change we directly assign the result of `compgen` to `COMPREPLY` instead of reading the output of `compgen` into a variable. Tested on: - 3.2.57(1)-release (macOS default) - 4.4.23(1)-release (Homebrew)
-rw-r--r--bash_completion/kerl20
1 files changed, 10 insertions, 10 deletions
diff --git a/bash_completion/kerl b/bash_completion/kerl
index f9e0058..18f403e 100644
--- a/bash_completion/kerl
+++ b/bash_completion/kerl
@@ -12,42 +12,42 @@ _kerl()
case $prev in
kerl)
- mapfile -t COMPREPLY < <( compgen -W 'build install update list delete active path status' -- "$cur" )
+ COMPREPLY=($(compgen -W 'build install update list delete active path status' -- "$cur"))
;;
list)
- mapfile -t COMPREPLY < <( compgen -W 'releases builds installations' -- "$cur" )
+ COMPREPLY=($(compgen -W 'releases builds installations' -- "$cur"))
;;
build)
if [ "$COMP_CWORD" -eq 2 ]; then
if [ -f "$HOME"/.kerl/otp_releases ]; then
RELEASES=$(cat "$HOME"/.kerl/otp_releases)
fi
- mapfile -t COMPREPLY < <( compgen -W "git $RELEASES" -- "$cur")
+ COMPREPLY=($(compgen -W "git $RELEASES" -- "$cur"))
else
if [ -f "$HOME"/.kerl/otp_builds ]; then
BUILDS=$(cut -d ',' -f 2 "$HOME"/.kerl/otp_builds)
fi
- mapfile -t COMPREPLY < <( compgen -W "$BUILDS" -- "$cur")
+ COMPREPLY=($(compgen -W "$BUILDS" -- "$cur"))
fi
;;
installation)
if [ -f "$HOME"/.kerl/otp_installations ]; then
PATHS=$(cut -d ' ' -f 2 "$HOME"/.kerl/otp_installations)
fi
- mapfile -t COMPREPLY < <( compgen -W "$PATHS" -- "$cur")
+ COMPREPLY=($(compgen -W "$PATHS" -- "$cur"))
;;
install)
if [ -f "$HOME"/.kerl/otp_builds ]; then
BUILDS=$(cut -d ',' -f 2 "$HOME"/.kerl/otp_builds)
fi
- mapfile -t COMPREPLY < <( compgen -W "$BUILDS" -- "$cur")
+ COMPREPLY=($(compgen -W "$BUILDS" -- "$cur"))
;;
path)
INSTALL_LIST="$HOME"/.kerl/otp_installations
if [ -f "$INSTALL_LIST" ]; then
NAMES=$(cut -d ' ' -f 2 "$INSTALL_LIST" | xargs basename)
fi
- mapfile -t COMPREPLY < <( compgen -W "$NAMES" -- "$cur")
+ COMPREPLY=($(compgen -W "$NAMES" -- "$cur"))
;;
deploy)
if [ "$COMP_CWORD" -eq 3 ]; then
@@ -55,13 +55,13 @@ _kerl()
PATHS=$(cut -d ' ' -f 2 "$HOME"/.kerl/otp_installations)
fi
fi
- mapfile -t COMPREPLY < <( compgen -W "$PATHS" -- "$cur")
+ COMPREPLY=($(compgen -W "$PATHS" -- "$cur"))
;;
delete)
- mapfile -t COMPREPLY < <( compgen -W 'build installation' -- "$cur")
+ COMPREPLY=($(compgen -W 'build installation' -- "$cur"))
;;
update)
- mapfile -t COMPREPLY < <( compgen -W 'releases' -- "$cur")
+ COMPREPLY=($(compgen -W 'releases' -- "$cur"))
;;
*)
if [ "$COMP_CWORD" -eq 3 ]; then