| Class | Capistrano::Deploy::RemoteDependency |
| In: |
lib/capistrano/recipes/deploy/remote_dependency.rb
lib/capistrano/recipes/deploy/remote_dependency.rb |
| Parent: | Object |
| configuration | [R] | |
| configuration | [R] | |
| hosts | [R] | |
| hosts | [R] |
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 9
9: def initialize(configuration)
10: @configuration = configuration
11: @success = true
12: @hosts = nil
13: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 9
9: def initialize(configuration)
10: @configuration = configuration
11: @success = true
12: @hosts = nil
13: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 33
33: def command(command, options={})
34: @message ||= "`#{command}' could not be found in the path"
35: try("which #{command}", options)
36: self
37: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 33
33: def command(command, options={})
34: @message ||= "`#{command}' could not be found in the path"
35: try("which #{command}", options)
36: self
37: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 15
15: def directory(path, options={})
16: @message ||= "`#{path}' is not a directory"
17: try("test -d #{path}", options)
18: self
19: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 15
15: def directory(path, options={})
16: @message ||= "`#{path}' is not a directory"
17: try("test -d #{path}", options)
18: self
19: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 21
21: def file(path, options={})
22: @message ||= "`#{path}' is not a file"
23: try("test -f #{path}", options)
24: self
25: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 21
21: def file(path, options={})
22: @message ||= "`#{path}' is not a file"
23: try("test -f #{path}", options)
24: self
25: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 39
39: def gem(name, version, options={})
40: @message ||= "gem `#{name}' #{version} could not be found"
41: gem_cmd = configuration.fetch(:gem_command, "gem")
42: try("#{gem_cmd} specification --version '#{version}' #{name} 2>&1 | awk 'BEGIN { s = 0 } /^name:/ { s = 1; exit }; END { if(s == 0) exit 1 }'", options)
43: self
44: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 39
39: def gem(name, version, options={})
40: @message ||= "gem `#{name}' #{version} could not be found"
41: gem_cmd = configuration.fetch(:gem_command, "gem")
42: try("#{gem_cmd} specification --version '#{version}' #{name} 2>&1 | awk 'BEGIN { s = 0 } /^name:/ { s = 1; exit }; END { if(s == 0) exit 1 }'", options)
43: self
44: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 46
46: def match(command, expect, options={})
47: expect = Regexp.new(Regexp.escape(expect.to_s)) unless expect.is_a?(Regexp)
48:
49: output_per_server = {}
50: try("#{command} ", options) do |ch, stream, out|
51: output_per_server[ch[:server]] ||= ''
52: output_per_server[ch[:server]] += out
53: end
54:
55: # It is possible for some of these commands to return a status != 0
56: # (for example, rake --version exits with a 1). For this check we
57: # just care if the output matches, so we reset the success flag.
58: @success = true
59:
60: errored_hosts = []
61: output_per_server.each_pair do |server, output|
62: next if output =~ expect
63: errored_hosts << server
64: end
65:
66: if errored_hosts.any?
67: @hosts = errored_hosts.join(', ')
68: output = output_per_server[errored_hosts.first]
69: @message = "the output #{output.inspect} from #{command.inspect} did not match #{expect.inspect}"
70: @success = false
71: end
72:
73: self
74: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 46
46: def match(command, expect, options={})
47: expect = Regexp.new(Regexp.escape(expect.to_s)) unless expect.is_a?(Regexp)
48:
49: output_per_server = {}
50: try("#{command} ", options) do |ch, stream, out|
51: output_per_server[ch[:server]] ||= ''
52: output_per_server[ch[:server]] += out
53: end
54:
55: # It is possible for some of these commands to return a status != 0
56: # (for example, rake --version exits with a 1). For this check we
57: # just care if the output matches, so we reset the success flag.
58: @success = true
59:
60: errored_hosts = []
61: output_per_server.each_pair do |server, output|
62: next if output =~ expect
63: errored_hosts << server
64: end
65:
66: if errored_hosts.any?
67: @hosts = errored_hosts.join(', ')
68: output = output_per_server[errored_hosts.first]
69: @message = "the output #{output.inspect} from #{command.inspect} did not match #{expect.inspect}"
70: @success = false
71: end
72:
73: self
74: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 85
85: def message
86: s = @message.dup
87: s << " (#{@hosts})" if @hosts
88: s
89: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 85
85: def message
86: s = @message.dup
87: s << " (#{@hosts})" if @hosts
88: s
89: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 76
76: def or(message)
77: @message = message
78: self
79: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 76
76: def or(message)
77: @message = message
78: self
79: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 81
81: def pass?
82: @success
83: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 81
81: def pass?
82: @success
83: end
# File lib/capistrano/recipes/deploy/remote_dependency.rb, line 27
27: def writable(path, options={})
28: @message ||= "`#{path}' is not writable"
29: try("test -w #{path}", options)
30: self
31: end