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
 |