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.
- .bundle_install_standalone ⇒ Object
- .bundle_install_standalone_option ⇒ Object
- .bundle_without ⇒ Object
- .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
- .shared_dirs ⇒ 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.expand_path('~/.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.expand_path('~/.ssh/id_rsa')],
port: 22,
}
‘keys` can be a string or an array. NOTE: :password is not supported.
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 61 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 |
.bundle_install_standalone ⇒ Object
96 97 98 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 96 def self.bundle_install_standalone fetch(:bundle_rsync_bundle_install_standalone) end |
.bundle_install_standalone_option ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 100 def self.bundle_install_standalone_option case value = self.bundle_install_standalone when true "--standalone" when Array "--standalone #{value.join(' ')}" when String "--standalone #{value}" else nil end end |
.bundle_without ⇒ Object
113 114 115 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 113 def self.bundle_without fetch(:bundle_rsync_bundle_without) || [:development, :test] 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
77 78 79 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 77 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
83 84 85 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 83 def self.max_parallels(hosts) (fetch(:bundle_rsync_max_parallels) || hosts.size).to_i end |
.rsync_options ⇒ Object
87 88 89 90 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 87 def self. bwlimit = fetch(:bundle_rsync_rsync_bwlimit) ? " --bwlimit #{fetch(:bundle_rsync_rsync_bwlimit)}" : "" fetch(:bundle_rsync_rsync_options) || "-az --delete#{bwlimit}" end |
.shared_dirs ⇒ Object
28 29 30 31 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 28 def self.shared_dirs return nil unless shared_dirs = fetch(:bundle_rsync_shared_dirs) shared_dirs.is_a?(Array) ? shared_dirs : [shared_dirs] end |
.skip_bundle ⇒ Object
92 93 94 |
# File 'lib/capistrano/bundle_rsync/config.rb', line 92 def self.skip_bundle fetch(:bundle_rsync_skip_bundle) end |