diff options
| author | 8cy <[email protected]> | 2020-05-24 07:40:34 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-05-24 07:40:34 -0700 |
| commit | a7dc1894d3f030926a95b948bd46fa60e95b8dcb (patch) | |
| tree | aa5c1b50427f9658ea2de686ea8c2032f289a6a2 /node_modules/jake/bin/bash_completion.sh | |
| download | aghpb-online-a7dc1894d3f030926a95b948bd46fa60e95b8dcb.tar.xz aghpb-online-a7dc1894d3f030926a95b948bd46fa60e95b8dcb.zip | |
wow it actually works lol
Diffstat (limited to 'node_modules/jake/bin/bash_completion.sh')
| -rw-r--r-- | node_modules/jake/bin/bash_completion.sh | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/jake/bin/bash_completion.sh b/node_modules/jake/bin/bash_completion.sh new file mode 100644 index 0000000..bb25995 --- /dev/null +++ b/node_modules/jake/bin/bash_completion.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +# http://stackoverflow.com/a/246128 +SOURCE="${BASH_SOURCE[0]}" +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink + DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + SOURCE="$(readlink "$SOURCE")" + [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done +JAKE_BIN_DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + +# http://stackoverflow.com/a/12495480 +# http://stackoverflow.com/a/28647824 +_auto_jake() +{ + local cur + local -a COMPGEN=() + _get_comp_words_by_ref -n : -c cur + + # run auto-completions in jake via our auto_complete.js wrapper + local -a auto_complete_info=( $(export COMP_LINE="${COMP_LINE}" && ${JAKE_BIN_DIR}/auto_complete.js "$cur" "${3}") ) + # check reply flag + local reply_flag="${auto_complete_info[0]}" + if [[ "${reply_flag}" == "no-complete" ]]; then + return 1 + fi + local auto_completions=("${auto_complete_info[@]:1}") + COMPGEN=( $(compgen -W "${auto_completions[*]}" -- "$cur") ) + COMPREPLY=( "${COMPGEN[@]}" ) + + __ltrim_colon_completions "$cur" + + # do we need another space?? + if [[ "${reply_flag}" == "yes-space" ]]; then + COMPREPLY=( "${COMPGEN[@]}" " " ) + fi + + return 0 +} + +complete -o default -F _auto_jake jake |