2013-05-14 23 views
13

Tôi muốn chạy nhiều lệnh cần phải (hoặc dễ dàng hơn) trong thư mục khác, sau đó khi chúng hoàn tất, hãy quay lại thư mục làm việc trước đó.Tạm thời thay đổi thư mục hiện tại trong Rake

Tôi đang hình dung một cái gì đó tương tự như Fabric's with cd(path):, ví dụ .:

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

Có một cách sẵn có để làm điều này trong Rake, hay tôi nên được viết một phương pháp tùy chỉnh mà chấp nhận một khối, vv?

Trả lời

31

Nó chỉ đơn giản là inbuilt Dir#chdir gọi:

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

Trích từ docs:

Nếu một khối được đưa ra, nó được thông qua tên của thư mục hiện mới, và các khối được thực hiện với điều đó làm thư mục hiện tại. Thư mục làm việc ban đầu được khôi phục khi khối thoát.