Sha256: b3e7057cc1d24e788dec49e43bc180dd681d471785f455805397ffa6ecfef226

Contents?: true

Size: 886 Bytes

Versions: 12

Compression:

Stored size: 886 Bytes

Contents

module Mirage
module CLIBridge
  def mirage_process_ids ports
    mirage_instances = {}
    ["Mirage Server", "mirage_server", "mirage server"].each do |process_name|
      processes_with_name(process_name).lines.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

  def kill pid
    ChildProcess.windows? ? `taskkill /F /T /PID #{pid}` : `kill -9 #{pid}`
  end

  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

end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
mirage-3.0.0.alpha.11 lib/mirage/client/cli_bridge.rb
mirage-3.0.0.alpha.10 lib/mirage/client/cli_bridge.rb
mirage-3.0.0.alpha.9 lib/mirage/client/cli_bridge.rb
mirage-3.0.0.alpha.8 lib/mirage/client/cli_bridge.rb
mirage-3.0.0.alpha.7 lib/mirage/client/cli_bridge.rb
mirage-3.0.0.alpha.6 lib/mirage/client/cli_bridge.rb
mirage-3.0.0.alpha.5 lib/mirage/client/cli_bridge.rb
mirage-3.0.0.alpha.4 lib/mirage/client/cli_bridge.rb
mirage-3.0.0.alpha.3 lib/mirage/client/cli_bridge.rb
mirage-3.0.0.alpha.2 lib/mirage/client/cli_bridge.rb
mirage-3.0.0.alpha.1 lib/mirage/client/cli_bridge.rb
mirage-2.4.2 lib/mirage/client/cli_bridge.rb