/**
  * Create a new event instance.
  *
  * @return void
  */
 public function __construct(ServerLog $log)
 {
     $this->status = $log->status;
     $this->started_at = $log->started_at ? $log->started_at->toDateTimeString() : null;
     $this->finished_at = $log->finished_at ? $log->finished_at->toDateTimeString() : null;
     $this->log_id = $log->id;
     $this->output = is_null($log->output) || !strlen($log->output) ? null : '';
     $this->runtime = !$log->runtime() ? null : $log->getPresenter()->readable_runtime;
 }
 /**
  * Gets the log output of a particular deployment step.
  *
  * @param  ServerLog $log
  * @return ServerLog
  */
 public function log(ServerLog $log)
 {
     $log->runtime = !$log->runtime() ? null : $log->getPresenter()->readable_runtime;
     return $log;
 }
 /**
  * Create an instance of DeployStep and a ServerLog entry for each server which can have code deployed.
  *
  * @param  int  $stage
  * @return void
  */
 private function createDeployStep($stage)
 {
     $step = DeployStep::create(['stage' => $stage, 'deployment_id' => $this->deployment->id]);
     foreach ($this->project->servers as $server) {
         // If command is null it is preparing one of the 4 default steps so
         // skip servers which shouldn't have the code deployed
         if (!$server->deploy_code) {
             continue;
         }
         ServerLog::create(['server_id' => $server->id, 'deploy_step_id' => $step->id]);
     }
 }