|
@@ -0,0 +1,74 @@
|
|
|
|
+#!/usr/bin/env bash
|
|
|
|
+# Copyright (c) 2020, Eric Pailleau <crownedgrouse@wanadoo.fr>
|
|
|
|
+# This file is part of erlang.mk and subject to the terms of the ISC License.
|
|
|
|
+# Date: April 12th 2020
|
|
|
|
+# Bash completion for Erlang.mk
|
|
|
|
+
|
|
|
|
+_erlang_mk()
|
|
|
|
+{
|
|
|
|
+ local cur prev words cword
|
|
|
|
+ _init_completion || return
|
|
|
|
+
|
|
|
|
+ T=$(make list-templates | cut -d ':' -f 2-)
|
|
|
|
+ TP=$(echo -n $T | cut -d '_' -f 1 | tr ' ' '|')
|
|
|
|
+ TPP=$(echo -n $T | tr ' ' '|')
|
|
|
|
+ case $prev in
|
|
|
|
+ make)
|
|
|
|
+ COMPREPLY=( $(compgen -W "all app deps fetch-deps list-deps search rel docs install-docs check tests clean distclean help erlang-mk bootstrap bootstrap-lib bootstrap-rel new-app new-lib new new list-templates ct plt dialyze escript eunit shell sphinx xref cover-report all.coverdata" -- "$cur") )
|
|
|
|
+ ;;
|
|
|
|
+ search)
|
|
|
|
+ COMPREPLY=( $(compgen -W 'q=' -- "$cur") ) && compopt -o nospace
|
|
|
|
+ ;;
|
|
|
|
+ new-app|new-lib)
|
|
|
|
+ COMPREPLY=( $(compgen -W 'in=' -- "$cur") ) && compopt -o nospace
|
|
|
|
+ ;;
|
|
|
|
+ new)
|
|
|
|
+ COMPREPLY=( $(compgen -W 't=' -- "$cur") ) && compopt -o nospace
|
|
|
|
+ ;;
|
|
|
|
+ =)
|
|
|
|
+ if [[ ${words[$cword - 2]} == "in" ]]; then
|
|
|
|
+ COMPREPLY=( $(compgen -W "$(ls apps 2>/dev/null)" -- "$cur") ) && compopt -o nospace
|
|
|
|
+ else
|
|
|
|
+ if [[ ${words[$cword - 2]} == "t" ]]; then
|
|
|
|
+ COMPREPLY=( $(compgen -W "$T" -- "$cur") ) && compopt -o nospace
|
|
|
|
+ fi
|
|
|
|
+ fi
|
|
|
|
+ ;;
|
|
|
|
+ $TP)
|
|
|
|
+ COMPREPLY=( $(compgen -W "$T" -- "$cur") ) && compopt -o nospace
|
|
|
|
+ ;;
|
|
|
|
+ $TPP)
|
|
|
|
+ COMPREPLY=( $(compgen -W 'n=' -- "$cur") ) && compopt -o nospace
|
|
|
|
+ ;;
|
|
|
|
+ *)
|
|
|
|
+ if [[ "$prev" == "in" && "$cur" == '=' ]]; then
|
|
|
|
+ test -d apps && echo 1>&2
|
|
|
|
+ test -d apps && echo $(ls apps 2>/dev/null)
|
|
|
|
+ COMPREPLY=( $(compgen -W "$(ls apps 2>/dev/null )" -- "$cur") ) && compopt -o nospace
|
|
|
|
+ fi
|
|
|
|
+ if [[ "$prev" == "t" && "$cur" == '=' ]]; then
|
|
|
|
+ echo 1>&2
|
|
|
|
+ echo $T 1>&2
|
|
|
|
+ COMPREPLY=( $(compgen -W "$T" -- "$cur") ) && compopt -o nospace
|
|
|
|
+ fi
|
|
|
|
+ if [[ $(echo "$T" | tr ' ' "\n" | grep "$prev") ]]; then
|
|
|
|
+ COMPREPLY=( $(compgen -W 'n=' -- "$cur") ) && compopt -o nospace
|
|
|
|
+ fi
|
|
|
|
+ if [[ ${words[$cword - 1]} == "n=" || ${words[$cword - 1]} == "n" ]]; then
|
|
|
|
+ COMPREPLY=( $(compgen -W 'in=' -- "$cur") ) && compopt -o nospace
|
|
|
|
+ fi
|
|
|
|
+ if [[ ${words[$cword - 3]} == "n" ]]; then
|
|
|
|
+ COMPREPLY=( $(compgen -W 'in=' -- "$cur") ) && compopt -o nospace
|
|
|
|
+ fi
|
|
|
|
+ ;;
|
|
|
|
+ esac
|
|
|
|
+
|
|
|
|
+ case $cur in
|
|
|
|
+ all|bootstrap|list|list-|new|new-)
|
|
|
|
+ echo 1>&2
|
|
|
|
+ make help | grep "^ $cur" 1>&2
|
|
|
|
+ return
|
|
|
|
+ ;;
|
|
|
|
+ esac
|
|
|
|
+} &&
|
|
|
|
+complete -F _erlang_mk make
|