public function addExecFutureClient(ExecFuture $future)
 {
     $io_channel = new PhutilExecChannel($future);
     $protocol_channel = new PhutilPHPObjectProtocolChannel($io_channel);
     $server_channel = new PhutilConsoleServerChannel($protocol_channel);
     $io_channel->setStderrHandler(array($server_channel, 'didReceiveStderr'));
     return $this->addClient($server_channel);
 }
 public function setCommandChannelFromExecFuture(ExecFuture $exec_future)
 {
     $exec_channel = new PhutilExecChannel($exec_future);
     $exec_channel->setStderrHandler(array($this, 'writeErrorIOCallback'));
     $this->execFuture = $exec_future;
     $this->commandChannel = $exec_channel;
     return $this;
 }