Parancssori kiegészítés rakehez

2008-05-22 04:17 | kommentek

Az egyre növekvő rake task lista sokszor gondot okoz, ha valamilyen feladatnak nem tudjuk a pontos nevét. Ilyenkor segíthet a parancssori kiegészítés (a.k.a. bash completion). Ehhez fel kell rakni a bash-completion csomagot, aminek a mikéntjébe itt nem megyek bele.

Legszebb a dologban, hogy saját kiegészítési stratégiákat is írhatunk tetszőleges programhoz. A fent említett rake szituációhoz írtam az alábbi kiegészítőt:

_rake()
{
    COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
    local curw
    COMPREPLY=()
    curw=${COMP_WORDS[COMP_CWORD]}
    local tasks="$(rake -T 2>/dev/null | cut -d\  -f2)"
    COMPREPLY=($(compgen -W '$tasks' -- $curw));
    return 0
}
complete -F _rake rake
complete -F _rake jrake

Ezt így ahogy van hozzá kell vágni a .bashrc fájlunk végére, terminál újra megnyit, és innentől kezdve ha beírjuk például, hogy rake db: és TAB-ot nyomunk, már látjuk is, hogy milyen lehetőségeink vannak.

Bónusz tipp: hasonló elven működős gem könyvtárt Textmateben megnyitós.