# File lib/automateit/shell_manager/portable.rb, line 124 def cd(dir, opts={}, &block) if block log.enqueue(:info, PEXEC+(block ? "pushd" : "cd")+" "+dir) begin if writing? or File.directory?(dir) FileUtils.cd(dir, &block) else block.call(true) end rescue Exception => e raise e ensure log.dequeue(:info, PEXEC+"popd # => #{pwd}") end else FileUtils.cd(dir) if writing? end return dir end