Class: Capistrano::BundleRsync::Config
- Inherits:
-
Object
- Object
- Capistrano::BundleRsync::Config
- Defined in:
- lib/capistrano/bundle_rsync/config.rb
Class Method Summary collapse
-
.build_ssh_command(host) ⇒ Object
Build ssh command options for rsync.
- .config_files ⇒ Object
- .keep_releases ⇒ Object
- .local_base_path ⇒ Object
- .local_bundle_path ⇒ Object
- .local_mirror_path ⇒ Object
- .local_release_path ⇒ Object
- .local_releases_path ⇒ Object
-
.max_parallels(hosts) ⇒ Object
Fetch the :bundle_rsync_max_parallels, where the default is the number of hosts.
- .rsync_options ⇒ Object
- .skip_bundle ⇒ Object
Class Method Details
.build_ssh_command(host) ⇒ Object
Build ssh command options for rsync
First, search available user and keys configurations for each role:
role :app, ['hostname'], {
user: username,
keys: File.('~/.ssh/id_rsa'),
port: 22,
}
If not available, look :bundle_rsync_ssh_options:
set :bundle_rsync_ssh_options {
user: username,
keys: [File.('~/.ssh/id_rsa')],
port: 22,
}
If :bundle_rsync_ssh_options are not available also, look :ssh_options finally:
set :ssh_options {
user: username,
keys: [File.('~/.ssh/id_rsa')],
port: 22,
}
keys can be a string or an array. NOTE: :password is not supported.
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 56 def self.build_ssh_command(host) user_opt, key_opt, port_opt = "", "", "" = fetch(:bundle_rsync_ssh_options) || fetch(:ssh_options) if user = host.user || [:user] user_opt = " -l #{user}" end if keys = (host.keys.empty? ? [:keys] : host.keys) keys = keys.is_a?(Array) ? keys : [keys] key_opt = keys.map {|key| " -i #{key}" }.join("") end if port = host.port || [:port] port_opt = " -p #{port}" end "ssh#{user_opt}#{key_opt}#{port_opt}" end |
.config_files ⇒ Object
23 24 25 26 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 23 def self.config_files return nil unless config_files = fetch(:bundle_rsync_config_files) config_files.is_a?(Array) ? config_files : [config_files] end |
.keep_releases ⇒ Object
72 73 74 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 72 def self.keep_releases @keep_releases = fetch(:bundle_rsync_keep_releases) || fetch(:keep_releases) end |
.local_base_path ⇒ Object
3 4 5 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 3 def self.local_base_path @local_base_path ||= fetch(:bundle_rsync_local_base_path) || "#{Dir::pwd}/.local_repo" end |
.local_bundle_path ⇒ Object
19 20 21 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 19 def self.local_bundle_path @local_bundle_path ||= fetch(:bundle_rsync_local_bundle_path) || "#{local_base_path}/bundle" end |
.local_mirror_path ⇒ Object
7 8 9 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 7 def self.local_mirror_path @local_mirror_path ||= fetch(:bundle_rsync_local_mirror_path) || "#{local_base_path}/mirror" end |
.local_release_path ⇒ Object
15 16 17 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 15 def self.local_release_path @local_release_path ||= fetch(:bundle_rsync_local_release_path) || "#{local_releases_path}/#{Time.new.strftime('%Y%m%d%H%M%S')}" end |
.local_releases_path ⇒ Object
11 12 13 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 11 def self.local_releases_path @local_releases_path ||= fetch(:bundle_rsync_local_releases_path) || "#{local_base_path}/releases" end |
.max_parallels(hosts) ⇒ Object
Fetch the :bundle_rsync_max_parallels, where the default is the number of hosts
78 79 80 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 78 def self.max_parallels(hosts) fetch(:bundle_rsync_max_parallels) || hosts.size end |
.rsync_options ⇒ Object
82 83 84 85 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 82 def self. bwlimit = fetch(:bundle_rsync_rsync_bwlimit) ? " --bwlimit #{fetch(:bundle_rsync_rsync_bwlimit)}" : "" fetch(:bundle_rsync_rsync_options) || "-az --delete#{bwlimit}" end |
.skip_bundle ⇒ Object
87 88 89 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 87 def self.skip_bundle fetch(:bundle_rsync_skip_bundle) end |