内容简介:有人知道所有内置Capistrano变量的列表,如current_path等吗?http://stackoverflow.com/questions/4380861/built-in-capistrano-variables
有人知道所有内置Capistrano变量的列表,如current_path等吗?
你可以找到他们所有的:
https://github.com/capistrano/capistrano/blob/legacy-v2/lib/capistrano/recipes/deploy.rb
更新:v3不再具有与v2相同的配置选项.我链接了上面的v2配置选项,但v3具有以下内容:
这是传统的,保留在这篇文章:
# ========================================================================= # These variables MUST be set in the client capfiles. If they are not set, # the deploy will fail with an error. # ========================================================================= _cset(:application) { abort "Please specify the name of your application, set :application, 'foo'" } _cset(:repository) { abort "Please specify the repository that houses your application's code, set :repository, 'foo'" } # ========================================================================= # These variables may be set in the client capfile if their default values # are not sufficient. # ========================================================================= _cset(:scm) { scm_default } _cset :deploy_via, :checkout _cset(:deploy_to) { "/u/apps/#{application}" } _cset(:revision) { source.head } _cset :rails_env, "production" _cset :rake, "rake" # ========================================================================= # These variables should NOT be changed unless you are very confident in # what you are doing. Make sure you understand all the implications of your # changes if you do decide to muck with these! # ========================================================================= _cset(:source) { Capistrano::Deploy::SCM.new(scm, self) } _cset(:real_revision) { source.local.query_revision(revision) { |cmd| with_env("LC_ALL", "C") { run_locally(cmd) } } } _cset(:strategy) { Capistrano::Deploy::Strategy.new(deploy_via, self) } # If overriding release name, please also select an appropriate setting for :releases below. _cset(:release_name) { set :deploy_timestamped, true; Time.now.utc.strftime("%Y%m%d%H%M%S") } _cset :version_dir, "releases" _cset :shared_dir, "shared" _cset :shared_children, %w(public/system log tmp/pids) _cset :current_dir, "current" _cset(:releases_path) { File.join(deploy_to, version_dir) } _cset(:shared_path) { File.join(deploy_to, shared_dir) } _cset(:current_path) { File.join(deploy_to, current_dir) } _cset(:release_path) { File.join(releases_path, release_name) } _cset(:releases) { capture("#{try_sudo} ls -x #{releases_path}", :except => { :no_release => true }).split.sort } _cset(:current_release) { releases.length > 0 ? File.join(releases_path, releases.last) : nil } _cset(:previous_release) { releases.length > 1 ? File.join(releases_path, releases[-2]) : nil } _cset(:current_revision) { capture("#{try_sudo} cat #{current_path}/REVISION", :except => { :no_release => true }).chomp } _cset(:latest_revision) { capture("#{try_sudo} cat #{current_release}/REVISION", :except => { :no_release => true }).chomp } _cset(:previous_revision) { capture("#{try_sudo} cat #{previous_release}/REVISION", :except => { :no_release => true }).chomp if previous_release } _cset(:run_method) { fetch(:use_sudo, true) ? :sudo : :run } # some tasks, like symlink, need to always point at the latest release, but # they can also (occassionally) be called standalone. In the standalone case, # the timestamped release_path will be inaccurate, since the directory won't # actually exist. This variable lets tasks like symlink work either in the # standalone case, or during deployment. _cset(:latest_release) { exists?(:deploy_timestamped) ? release_path : current_release } _cset :maintenance_basename, "maintenance" _cset(:maintenance_template_path) { File.join(File.dirname(__FILE__), "templates", "maintenance.rhtml") }
http://stackoverflow.com/questions/4380861/built-in-capistrano-variables
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。