module MindControl::Client

MindControl client.

Constants

Process

Running process struct.

Public Instance Methods

connect( process ) click to toggle source

Connect to given process. @param [MindControl::Client::Process] process Process to connect to.

# File lib/mind_control/client.rb, line 35
def connect( process )
  UNIXSocket.open( process.socket ) do |socket|
    socket.send_io STDIN
    socket.send_io STDOUT

    # Wait for disconnect
    socket.recv( 1 )
  end
end
get_running_processes( sockets_dir ) click to toggle source

Returns running processes.

@param [String] sockets_dir Directory with MindControl sockets. @return [Array<MindControl::Client::Process>]

# File lib/mind_control/client.rb, line 21
def get_running_processes( sockets_dir )
  processes = Dir.glob( File.join( sockets_dir, "*.sock" )).map do |file|
    name, pid = File.basename( file, ".sock" ).split( "." )
    Process.new( name, pid.to_i, file )
  end

  # Ignore not existent processes
  processes.select { |process| ::Process.kill( 0, process.pid ) rescue false }
end