/
githubmirror
/
bash-completion
Обзор
Документация
Войти
/
githubmirror
/
bash-completion
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
1.2
install-completions
75 строк
1 KB
Guillaume Rousse
set additional variables needed by some completions (man and gcc, notably)
25 сен 2009, 01:23
25 сен 2009, 01:23
174023d
Код
Авторство
О чём код?
#!/bin/sh # install relevant completions, by sourcing every scriptlet # found in a given directory, and symlinking those matching # an installed command to another directory have() { PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin type $1 &>/dev/null } usage() { echo "usage: $0 <completion_dir> [installation_dir]" } while getopts ":h" flag; do case $flag in h) usage; exit 0;; esac done shift $((OPTIND - 1)) completion_dir=$1 if [ -z "$completion_dir" ]; then echo "missing completion directory" usage exit 1 fi if [ ! -d $completion_dir ]; then echo "invalid directory $completion_dir" usage exit 1 fi installation_dir=$2 if [ ! -d $installation_dir ]; then echo "invalid directory $installation_dir" usage exit 1 fi # many scripts require this shopt -s extglob # and some require this also UNAME=$(uname -s) UNAME=${UNAME/CYGWIN_*/Cygwin} case $UNAME in Linux|GNU|GNU/*) USERLAND=GNU ;; *) USERLAND=$UNAME ;; esac for script in $completion_dir/*; do # reset completion complete -r # source script source $script 2>/dev/null # check completion output output=$(complete -p) if [ -z "$output" ]; then continue fi if [ -n "$installation_dir" ]; then ln -sf $script $installation_dir/$(basename $script) else echo "$script OK" fi done