Rake için bash-completion
Terminal’de çalışırken hep işimi hızlı ve en kolay şekilde yapabilmenin yollarını ararım. Bu sayede pek çok yeni şey de öğrendim. Octopress sağolsun ciddi ciddi Ruby öğrenmeme büyük katkıda bulundu…
Rakefile
sayesinde pek çok şeyi otomatize ediyoruz. Eğer;
rake -T
bize yapabileceğimiz işlerin listesini veriyor. Örneğin Octopress sitenizde bunu denerseniz:
rake clean # Clean out caches: .pygments-cache, .gist-cache, .sass-cache
rake copydot[source,dest] # copy dot files for deployment
rake deploy # Default deploy task
rake gen_deploy # Generate website and deploy
rake generate # Generate jekyll site
gibi pek çok rake task’i görebilirsiniz. Aklıma ilk şu geldi:
peki ben tüm
rake
komutlarını ezbere mi bileceğim?
Bunun mutlaka bash-completion
’ı vardır dedim ve buldum. Mac OS X kullanıyorum
ve paket yöneticisi olarak Homebrew kullanıyorum. Eğer yoksa ilk
olarak ilgili paketi kurmanız gerekiyor :
# önce kontrol edin
brew ls bash-completion # eğer yoksa hata verir...
# yoksa
brew update
brew install bash-completion
Kurumdan sonra; /usr/local/etc/bash_completion.d
altına completion_rake
adında bir dosya oluşturup içine aşağıdaki fonksiyonu yazın:
touch /usr/local/etc/bash_completion.d/completion_rake # dosyayı oluşturduk
nano /usr/local/etc/bash_completion.d/completion_rake # açtık
# eğer TextMate’iniz ayarlıysa
mate /usr/local/etc/bash_completion.d/completion_rake
_rake()
{
if [[ ! -e Rakefile ]]; then
return
fi
opts=$(rake -T | awk 'NR != 1 {print $2}')
cur="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
}
complete -F _rake rake
Benim .dotfiles
şeklinde kendi ayarlarım var bu bakımdan tüm bash-completion
dosyalarım ~/Dotfiles/completions/
altında bulunuyor bu bakımdan ben
/usr/local/etc/bash_completion.d
altına linkliyorum dosyayı.
ln -s ~/Dotfiles/completions/completion_rake /usr/local/etc/bash_completion.d/completion_rake
şeklinde yapıyorum.