41 lines
1.6 KiB
Bash
41 lines
1.6 KiB
Bash
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
|
## Fonctions pour l'autocomplétion bash, si le package bash-completion n'est pas
|
|
## installé. ATTENTION! Ces fonctions ont été pour la plupart récupérées de
|
|
## l'implémentation sous Debian Wheezy, ce qui signifie qu'elles sont conçues
|
|
## pour fonctionner avec bash 4.1
|
|
##@cooked nocomments
|
|
## ATTENTION! Ce module ne doit pas avoir de dépendances externes parce qu'il
|
|
## doit pouvoir être chargé depuis ~/etc/bashrc.d
|
|
uprovide bash_completion
|
|
|
|
function __bash_completion_enabled() {
|
|
[ -n "$__NUTOOLS_BASH_COMPLETION" ] && return 0
|
|
grep -qE '^[ \t]*(\.|source)[ \t]*/usr/share/bash-completion/bash_completion' /etc/bash.bashrc && return 0
|
|
grep -qE '^[ \t]*(\.|source)[ \t]*/usr/share/bash-completion/bash_completion' ~/.bashrc && return 0
|
|
return 1
|
|
}
|
|
function __bash_completion_module_enabled() {
|
|
if [ -f "/usr/share/bash-completion/completions/$1" ]; then
|
|
local var="__NUTOOLS_BASH_COMPLETION_${1//-/_}"
|
|
if [ -z "${!var}" ]; then
|
|
# nous ne supportons pas le chargement à la demande: charger le
|
|
# module de suite
|
|
source "/usr/share/bash-completion/completions/$1"
|
|
eval "$var=1"
|
|
fi
|
|
return 0
|
|
fi
|
|
[ -n "$BASH_COMPLETION_COMPAT_DIR" -a -f "$BASH_COMPLETION_COMPAT_DIR/$1" ] && return 0
|
|
return 1
|
|
}
|
|
|
|
if ! __bash_completion_enabled; then
|
|
__NUTOOLS_BASH_COMPLETION=1
|
|
fi
|
|
if [ -z "$BASH_COMPLETION" ]; then
|
|
BASH_COMPLETION=1
|
|
# activer les options nécessaires pour la complétion, parce que ce n'est
|
|
# peut-être pas encore fait.
|
|
shopt -s extglob progcomp
|
|
fi
|