original_string: protected function compileCommand()
      {
          $output = ProcessUtils::escapeArgument($this->output);
  
          $redirect = $this->shouldAppendOutput ? ' >> ' : ' > ';
  
          if (! $this->runInBackground) {
              return $this->command .$redirect .$output .' 2>&1';
          }
  
          $delimiter = windows_os() ? '&' : ';';
  
          $phpBinary = ProcessUtils::escapeArgument(
              with(new PhpExecutableFinder)->find(false)
          );
  
          $forgeBinary = defined('FORGE_BINARY') ? ProcessUtils::escapeArgument(FORGE_BINARY) : 'forge';
  
          $finished = $phpBinary .' ' .$forgeBinary .' schedule:finish ' . ProcessUtils::escapeArgument($this->mutexName());
  
          return '(' .$this->command .$redirect .$output .' 2>&1 ' .$delimiter .' ' .$finished .') > '
              . ProcessUtils::escapeArgument($this->getDefaultOutput()) .' 2>&1 &';
      }
code: protected function compileCommand()
      {
          $output = ProcessUtils::escapeArgument($this->output);
  
          $redirect = $this->shouldAppendOutput ? ' >> ' : ' > ';
  
          if (! $this->runInBackground) {
              return $this->command .$redirect .$output .' 2>&1';
          }
  
          $delimiter = windows_os() ? '&' : ';';
  
          $phpBinary = ProcessUtils::escapeArgument(
              with(new PhpExecutableFinder)->find(false)
          );
  
          $forgeBinary = defined('FORGE_BINARY') ? ProcessUtils::escapeArgument(FORGE_BINARY) : 'forge';
  
          $finished = $phpBinary .' ' .$forgeBinary .' schedule:finish ' . ProcessUtils::escapeArgument($this->mutexName());
  
          return '(' .$this->command .$redirect .$output .' 2>&1 ' .$delimiter .' ' .$finished .') > '
              . ProcessUtils::escapeArgument($this->getDefaultOutput()) .' 2>&1 &';
      }
code_tokens: protected function compileCommand ( ) { $ output = ProcessUtils :: escapeArgument ( $ this -> output ) ; $ redirect = $ this -> shouldAppendOutput ? ' >> ' : ' > ' ; if ( ! $ this -> runInBackground ) { return $ this -> command . $ redirect . $ output . ' 2>&1' ; } $ delimiter = windows_os ( ) ? '&' : ';' ; $ phpBinary = ProcessUtils :: escapeArgument ( with ( new PhpExecutableFinder ) -> find ( false ) ) ; $ forgeBinary = defined ( 'FORGE_BINARY' ) ? ProcessUtils :: escapeArgument ( FORGE_BINARY ) : 'forge' ; $ finished = $ phpBinary . ' ' . $ forgeBinary . ' schedule:finish ' . ProcessUtils :: escapeArgument ( $ this -> mutexName ( ) ) ; return '(' . $ this -> command . $ redirect . $ output . ' 2>&1 ' . $ delimiter . ' ' . $ finished . ') > ' . ProcessUtils :: escapeArgument ( $ this -> getDefaultOutput ( ) ) . ' 2>&1 &' ; }
docstring: Build a command string with mutex.
  
  @return string
docstring_tokens: Build a command string with mutex .