module Mirage::CLIBridge

Public Instance Methods

kill(pid) click to toggle source
# File lib/mirage/client/cli_bridge.rb, line 17
def kill pid
  ChildProcess.windows? ? `taskkill /F /T /PID #{pid}` : `kill -9 #{pid}`
end
mirage_process_ids(ports) click to toggle source
# File lib/mirage/client/cli_bridge.rb, line 3
def mirage_process_ids ports
  mirage_instances = {}
  ["Mirage Server", "mirage_server", "mirage server"].each do |process_name|
    processes_with_name(process_name).each_line.collect { |line| line.chomp }.each do |process_line|
      pid = process_line.split(' ')[1]
      port = process_line[/port (\d+)/, 1]
      mirage_instances[port] = pid
    end
  end

  return mirage_instances if ports.first.to_s == "all" || ports.empty?
  Hash[mirage_instances.find_all { |port, pid| ports.include?(port.to_i) }]
end
processes_with_name(name) click to toggle source
# File lib/mirage/client/cli_bridge.rb, line 21
def processes_with_name name
  if ChildProcess.windows?
    `tasklist /V | findstr "#{name.gsub(" ", '\\ ')}"`
  else
    IO.popen("ps aux | grep '#{name}' | grep -v grep | grep -v #{$$}")
  end
end