Capistrano当前的应用程序路径

时间:2015-05-29 23:02:09

标签: ruby-on-rails capistrano

在使用Capistrano 3进行部署时,我需要从任务中获取当前的本地应用程序路径,Capistrano是否提供包含此信息的任何静态变量?

2 个答案:

答案 0 :(得分:4)

使用当前工作目录Dir.pwd

解决

答案 1 :(得分:0)

我最近遇到了类似的问题,当时我要用Capistrano下载一个远程文件,并希望将其相对于任务文件放置在我的开发计算机上。我的耙任务看起来像这样:

# lib/capistrano/tasks/awesome_tasks.rake

namespace :awesome_tasks do

  task :do_something_awesome do

    # Set path to local folder containing the task
    path = Pathname.new(File.join(__dir__)) # => "parent_folders/app_root/lib/capistrano/tasks"

    # Do something with path...
  end

end

如果您需要应用程序根目录的路径,则可以执行以下操作:

# lib/capistrano/tasks/awesome_tasks.rake

namespace :awesome_tasks do

  task :do_something_awesome do

    # Set path to the root of the application.
    # Use #realpath to exclude the extra dots (optional)
    path = Pathname.new(File.join(__dir__, '../../..')).realpath # => "parent_folders/app_root"

    # Do something with path...
  end

end