Использование Ruby Guard Gem для мониторинга файлов C ++ - PullRequest
0 голосов
/ 12 марта 2012

Я использую этот Guardfile для просмотра файлов .cpp и .h и запускаю команду make, если что-то изменится. Прекрасно работает, пока все файлы находятся в каталоге, в котором находится Guardfile.

guard 'shell' do
    watch(%r{^\w*\.(h|cpp)$}) do
        `make test` 
    end
end

Я бы хотел, чтобы Guardfile находился в корневом каталоге дерева моего проекта и отслеживал файлы .h и .cpp в каждом подкаталоге. Можно ли это сделать, изменив регулярное выражение, или мне нужно иметь Guardfile в каждом подкаталоге?

(Не уверен, почему форматирование не проходит корректно)

Ответы [ 2 ]

3 голосов
/ 31 марта 2012

Вам необходимо установить следующие два гема:

guard
guard-shell

Создать Guardfile в каталоге, в котором вы хотите просмотреть файлы

guard 'shell' do 
  watch(%r{^.+\.(h|hpp|cpp)$}) do 
    `make test`
  end 
end

Важночто фактическая команда оболочки (здесь: make test ) должна быть заключена в ``

* Затем запустите: > guard

2 голосов
/ 14 марта 2012

Вы должны быть в состоянии это через регулярное выражение. Попробуйте это:

guard 'shell' do 
  watch(%r{^.+\.(h|cpp)$}) do 
    make test 
  end 
end

Это должно соответствовать файлам в любом каталоге ниже корневого каталога вашего приложения с расширениями .cpp или .h. Если вы хотите сосредоточиться на подкаталоге, попробуйте ^dir/sub/.+\.(h|cpp)$

...