Sha256: e846845ad29790f8efb5aaf0704f9b427344f551fdb396d0d568f603a1b9c728

Contents?: true

Size: 890 Bytes

Versions: 31

Compression:

Stored size: 890 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).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

  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

31 entries across 31 versions & 2 rubygems

Version Path
mirage-4.0.0.alpha10 lib/mirage/client/cli_bridge.rb
mirage-4.0.0.alpha9 lib/mirage/client/cli_bridge.rb
mirage-4.0.0.alpha8 lib/mirage/client/cli_bridge.rb
mirage-4.0.0.alpha6 lib/mirage/client/cli_bridge.rb
mirage-4.0.0.alpha5 lib/mirage/client/cli_bridge.rb
mirage-4.0.0.alpha4 lib/mirage/client/cli_bridge.rb
mirage-4.0.0.alpha3 lib/mirage/client/cli_bridge.rb
mirage-4.0.0.alpha2 lib/mirage/client/cli_bridge.rb
mirage-4.0.0.alpha1 lib/mirage/client/cli_bridge.rb
mirage-3.0.14 lib/mirage/client/cli_bridge.rb
mirage-3.0.13 lib/mirage/client/cli_bridge.rb
mirage-3.0.12 lib/mirage/client/cli_bridge.rb
mirage-3.0.11 lib/mirage/client/cli_bridge.rb
mirage-3.0.10 lib/mirage/client/cli_bridge.rb
mirage-3.0.9 lib/mirage/client/cli_bridge.rb
mirage-on-thin-3.0.8 lib/mirage/client/cli_bridge.rb
mirage-3.0.8 lib/mirage/client/cli_bridge.rb
mirage-3.0.7 lib/mirage/client/cli_bridge.rb
mirage-3.0.6 lib/mirage/client/cli_bridge.rb
mirage-3.0.5 lib/mirage/client/cli_bridge.rb