Expose ssh_run
This commit is contained in:
@@ -87,20 +87,24 @@ class Mrsk::Cli::Accessory < Mrsk::Cli::Base
|
|||||||
def exec(name, cmd)
|
def exec(name, cmd)
|
||||||
runner = \
|
runner = \
|
||||||
case options[:method]
|
case options[:method]
|
||||||
when "exec" then "exec"
|
when "exec" then "exec"
|
||||||
when "run" then "run_exec"
|
when "run" then "run_exec"
|
||||||
when "ssh" then "exec_over_ssh"
|
when "ssh_exec" then "exec_over_ssh"
|
||||||
|
when "ssh_run" then "run_over_ssh"
|
||||||
else raise "Unknown method: #{options[:method]}"
|
else raise "Unknown method: #{options[:method]}"
|
||||||
end.inquiry
|
end.inquiry
|
||||||
|
|
||||||
with_accessory(name) do |accessory|
|
with_accessory(name) do |accessory|
|
||||||
if runner.exec_over_ssh?
|
if runner.exec_over_ssh? || runner.run_over_ssh?
|
||||||
run_locally do
|
run_locally do
|
||||||
info "Launching command on #{accessory.host}"
|
info "Launching command on #{accessory.host}"
|
||||||
exec accessory.exec_over_ssh(cmd, host: accessory.host)
|
exec accessory.send(runner, cmd)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
on(accessory.host) { puts capture_with_info(*accessory.send(runner, cmd)) }
|
on(accessory.host) do
|
||||||
|
info "Launching command on #{accessory.host}"
|
||||||
|
execute *accessory.send(runner, cmd)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -63,6 +63,10 @@ class Mrsk::Commands::Accessory < Mrsk::Commands::Base
|
|||||||
*command
|
*command
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def run_over_ssh(command)
|
||||||
|
super command, host: host
|
||||||
|
end
|
||||||
|
|
||||||
def exec_over_ssh(*command)
|
def exec_over_ssh(*command)
|
||||||
run_over_ssh run_exec(*command, interactive: true).join(" "), host: host
|
run_over_ssh run_exec(*command, interactive: true).join(" "), host: host
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -8,6 +8,10 @@ module Mrsk::Commands
|
|||||||
@config = config
|
@config = config
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def run_over_ssh(command, host:)
|
||||||
|
"ssh -t #{config.ssh_user}@#{host} '#{command}'"
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
def combine(*commands, by: "&&")
|
def combine(*commands, by: "&&")
|
||||||
commands
|
commands
|
||||||
@@ -27,9 +31,5 @@ module Mrsk::Commands
|
|||||||
def docker(*args)
|
def docker(*args)
|
||||||
args.compact.unshift :docker
|
args.compact.unshift :docker
|
||||||
end
|
end
|
||||||
|
|
||||||
def run_over_ssh(command, host:)
|
|
||||||
"ssh -t #{config.ssh_user}@#{host} '#{command}'"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user