Временно изменить текущий каталог в Rake - программирование

Временно изменить текущий каталог в Rake

Мне нужно запустить несколько команд, которые должны быть (или проще быть) в другом каталоге, а затем, как только они будут завершены, вернитесь в предыдущий рабочий каталог.

Я представляю нечто похожее на Fabric with cd(path):, например:

cd('.git') do
   File.unlink('config')
end

Есть ли встроенный способ сделать это в Rake, или я должен писать собственный метод, который принимает блок и т.д.?

4b9b3361

Ответ 1

Это просто встроенный вызов Dir#chdir:

Dir.chdir('.git') do
  File.unlink('config')
end

Выдержка из docs:

Если задан блок, ему передается имя нового текущего каталога, а блок выполняется с этим в качестве текущего каталога. Оригинальный рабочий каталог восстанавливается при выходе из блока.