Skip to content

Instantly share code, notes, and snippets.

@srusskih
Created June 6, 2017 09:26
Show Gist options
  • Save srusskih/52622c4ec7c5079fdb24dd0e65d32050 to your computer and use it in GitHub Desktop.
Save srusskih/52622c4ec7c5079fdb24dd0e65d32050 to your computer and use it in GitHub Desktop.
# Shoud be included in ``.bashrc``
function _makefile_targets {
local curr_arg;
local targets;
# Find makefile targets available in the current directory
targets=''
if [[ -e "$(pwd)/Makefile" ]]; then
targets=$( \
grep -oE '^[a-zA-Z0-9_-]+:' Makefile \
| sed 's/://' \
| tr '\n' ' ' \
)
fi
# Filter targets based on user input to the bash completion
curr_arg=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -W "${targets[@]}" -- $curr_arg ) );
}
complete -F _makefile_targets make
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment