Class: Chake::Backend
- Inherits:
-
Struct
- Object
- Struct
- Chake::Backend
show all
- Defined in:
- lib/chake/backend.rb,
lib/chake/backend/ssh.rb,
lib/chake/backend/local.rb
Defined Under Namespace
Classes: CommandFailed, Local, Ssh
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#node ⇒ Object
Returns the value of attribute node
3
4
5
|
# File 'lib/chake/backend.rb', line 3
def node
@node
end
|
Class Method Details
.backend_name ⇒ Object
61
62
63
|
# File 'lib/chake/backend.rb', line 61
def self.backend_name
name.split("::").last.downcase
end
|
.get(name) ⇒ Object
70
71
72
73
|
# File 'lib/chake/backend.rb', line 70
def self.get(name)
backend = @backends.find { |b| b.backend_name == name }
backend || raise(ArgumentError.new("Invalid backend name: #{name}"))
end
|
.inherited(subclass) ⇒ Object
65
66
67
68
|
# File 'lib/chake/backend.rb', line 65
def self.inherited(subclass)
@backends ||= []
@backends << subclass
end
|
Instance Method Details
#rsync ⇒ Object
16
17
18
|
# File 'lib/chake/backend.rb', line 16
def rsync
['rsync']
end
|
#rsync_dest ⇒ Object
20
21
22
|
# File 'lib/chake/backend.rb', line 20
def rsync_dest
node.path + '/'
end
|
#run(cmd) ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/chake/backend.rb', line 24
def run(cmd)
printf "%#{Node.max_node_name_length}s: $ %s\n", node.hostname, cmd
io = IO.popen(command_runner + ['/bin/sh'], mode='w+', eer: [:child, :out])
io.write(cmd)
io.close_write
io.each_line do |line|
printf "%#{Node.max_node_name_length}s: %s\n", node.hostname, line.gsub(/\s*$/, '')
end
io.close
if $?
status = $?.exitstatus
if status != 0
raise CommandFailed.new([node.hostname, 'FAILED with exit status %d' % status].join(': '))
end
end
end
|
#run_as_root(cmd) ⇒ Object
45
46
47
48
49
50
51
|
# File 'lib/chake/backend.rb', line 45
def run_as_root(cmd)
if node.remote_username == 'root'
run(cmd)
else
run('sudo ' + cmd)
end
end
|
#run_shell ⇒ Object
41
42
43
|
# File 'lib/chake/backend.rb', line 41
def run_shell
system(*shell_command)
end
|
#scp ⇒ Object
8
9
10
|
# File 'lib/chake/backend.rb', line 8
def scp
['scp']
end
|
#scp_dest ⇒ Object
12
13
14
|
# File 'lib/chake/backend.rb', line 12
def scp_dest
''
end
|
#skip? ⇒ Boolean
57
58
59
|
# File 'lib/chake/backend.rb', line 57
def skip?
false
end
|
#to_s ⇒ Object
53
54
55
|
# File 'lib/chake/backend.rb', line 53
def to_s
self.class.backend_name
end
|