class Wordmove::Hook::Remote

Public Class Methods

logger() click to toggle source
# File lib/wordmove/hook.rb, line 103
def self.logger
  Wordmove::Hook.logger
end
run(command_hash, options, simulate = false) click to toggle source
# File lib/wordmove/hook.rb, line 107
def self.run(command_hash, options, simulate = false)
  ssh_options = options[:ssh]
  wordpress_path = options[:wordpress_path]

  copier = Photocopier::SSH.new(ssh_options).tap { |c| c.logger = logger }

  logger.task_step false, "Exec command: #{command_hash[:command]}"
  return true if simulate

  stdout, stderr, exit_code =
    copier.exec!("cd #{wordpress_path} && #{command_hash[:command]}")

  if exit_code.zero?
    logger.task_step false, "Output: #{stdout}"
    logger.success ""
  else
    logger.task_step false, "Output: #{stderr}"
    logger.error "Error code #{exit_code}"
    raise Wordmove::RemoteHookException unless command_hash[:raise].eql? false
  end
end