Автозавершение в bash’е по Tab’у — это невероятно удобная вещь. И оно точно нужно для rake, которым каждый программист на Ruby пользуется часто.
Особо ленивые программисты уже давно прописали самодельные скрипты в своих
.bashrc
. Но настоящий дзен-программист не должен любить велосипеды и чтит репозитории и пакеты. Поэтому я собрал скрипт в пакет и выложил в Ubuntu on Rails PPA.Установка
Ubuntu
- Добавляем Ubuntu on Rails PPA:
$ sudo add-apt-repository ppa:ubuntu-on-rails/ppa
- Устанавливаем пакет
rake-completion
:
$ sudo apt-get install rake-completion
Другие UNIX
- Клонируем репозиторий:
$ git clone git://github.com/ai/rake-completion.git
- Копируем скрипт в системную папку:
$ sudo cp rake-completion/rake /etc/bash_completion.d/
.
Подробности
Задачи Rake кешируются в
.rake_tasks~
в папке проекта, поскольку, например, в Rails Rakefile запускается очень медленно, так как сначала загружает всё окружение проекта.Чтобы кеш и резервные копии не попали в git-репозиторий просто добавьте в .gitignore:
*~
Кеш автоматически обновляется, при изменениях в
Rakefile
или каких-нибудь *.rake
файлов в проекте.Скрипт написан на sh. Должен работать и в zsh. В репозитории есть тесты тоже на sh :).