caio.co/de/bash.d


Initial commit by Caio 13 years ago (log)

Blob lib/make_dir_complete.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash

make_dir_complete() {
    local aliasname=$1
    local dirname=$(readlink -f $2)
    local prgname="__s_${aliasname}__"
    FUNC="function $prgname() {
        local cur len wrkdir;
        local IFS=\$'\\n'
        wrkdir=\"$dirname\"
        cur=\${COMP_WORDS[COMP_CWORD]};
        len=\$((\${#wrkdir} + 2));
        COMPREPLY=( \$(compgen -S/ -d \$wrkdir/\$cur| cut -b \$len-) );
    }"
    ALIAS="$aliasname () { cd \"$dirname/\$*\"; }"
    eval $FUNC
    eval $ALIAS
    complete -o nospace -F $prgname $aliasname
}