protected function executeQueryFromFuture(Future $future)
 {
     list($corpus) = $future->resolvex();
     $file_content = new DiffusionFileContent();
     $file_content->setCorpus($corpus);
     return $file_content;
 }
 protected function executeQueryFromFuture(Future $future)
 {
     try {
         list($corpus) = $future->resolvex();
     } catch (CommandException $ex) {
         $stderr = $ex->getStdErr();
         if (preg_match('/path not found$/', trim($stderr))) {
             // TODO: Improve user experience for this. One way to end up here
             // is to have the parser behind and look at a file which was recently
             // nuked; Diffusion will think it still exists and try to grab content
             // at HEAD.
             throw new Exception(pht('Failed to retrieve file content from Subversion. The file may ' . 'have been recently deleted, or the Diffusion cache may be out of ' . 'date.'));
         } else {
             throw $ex;
         }
     }
     $file_content = new DiffusionFileContent();
     $file_content->setCorpus($corpus);
     return $file_content;
 }
 protected function resolveFuture(Future $future)
 {
     list($stdout) = $future->resolvex();
     $all_results = json_decode($stdout);
     foreach ($all_results as $results) {
         if ($results === null || $results->Issues === null) {
             return;
         }
         foreach ($results->Issues as $issue) {
             $message = new ArcanistLintMessage();
             $message->setPath($results->FileName);
             $message->setLine($issue->LineNumber);
             $message->setCode($issue->Index->Code);
             $message->setName($issue->Index->Name);
             $message->setChar($issue->Column);
             $message->setOriginalText($issue->OriginalText);
             $message->setReplacementText($issue->ReplacementText);
             $desc = @vsprintf($issue->Index->Message, $issue->Parameters);
             if ($desc === false) {
                 $desc = $issue->Index->Message;
             }
             $message->setDescription($desc);
             $severity = ArcanistLintSeverity::SEVERITY_ADVICE;
             switch ($issue->Index->Severity) {
                 case 0:
                     $severity = ArcanistLintSeverity::SEVERITY_ADVICE;
                     break;
                 case 1:
                     $severity = ArcanistLintSeverity::SEVERITY_AUTOFIX;
                     break;
                 case 2:
                     $severity = ArcanistLintSeverity::SEVERITY_WARNING;
                     break;
                 case 3:
                     $severity = ArcanistLintSeverity::SEVERITY_ERROR;
                     break;
                 case 4:
                     $severity = ArcanistLintSeverity::SEVERITY_DISABLED;
                     break;
             }
             $severity_override = $this->getLintMessageSeverity($issue->Index->Code);
             if ($severity_override !== null) {
                 $severity = $severity_override;
             }
             $message->setSeverity($severity);
             $this->addLintMessage($message);
         }
     }
 }
 protected final function resolveFuture($path, Future $future)
 {
     list($err, $stdout, $stderr) = $future->resolve();
     if ($err) {
         $future->resolvex();
     }
     $messages = $this->parseLinterOutput($path, $err, $stdout, $stderr);
     if ($messages === false) {
         if ($err) {
             $future->resolvex();
         } else {
             throw new Exception(sprintf("%s\n\nSTDOUT\n%s\n\nSTDERR\n%s", pht('Linter failed to parse output!'), $stdout, $stderr));
         }
     }
     foreach ($messages as $message) {
         $this->addLintMessage($message);
     }
 }
 protected function resolveFileContentFuture(Future $future)
 {
     list($corpus) = $future->resolvex();
     return $corpus;
 }
 protected final function resolveFuture($path, Future $future)
 {
     list($err, $stdout, $stderr) = $future->resolve();
     if ($err && !$this->shouldExpectCommandErrors()) {
         $future->resolvex();
     }
     $messages = $this->parseLinterOutput($path, $err, $stdout, $stderr);
     if ($err && $this->shouldExpectCommandErrors() && !$messages) {
         // We assume that if the future exits with a non-zero status and we
         // failed to parse any linter messages, then something must've gone wrong
         // during parsing.
         $messages = false;
     }
     if ($messages === false) {
         if ($err) {
             $future->resolvex();
         } else {
             throw new Exception(sprintf("%s\n\nSTDOUT\n%s\n\nSTDERR\n%s", pht('Linter failed to parse output!'), $stdout, $stderr));
         }
     }
     foreach ($messages as $message) {
         $this->addLintMessage($message);
     }
 }
 protected final function resolveFuture($path, Future $future)
 {
     list($err, $stdout, $stderr) = $future->resolve();
     if ($err && !$this->shouldExpectCommandErrors()) {
         $future->resolvex();
     }
     $messages = $this->parseLinterOutput($path, $err, $stdout, $stderr);
     if ($messages === false) {
         if ($err) {
             $future->resolvex();
         } else {
             throw new Exception("Linter failed to parse output!\n\n{$stdout}\n\n{$stderr}");
         }
     }
     foreach ($messages as $message) {
         $this->addLintMessage($message);
     }
 }
Beispiel #8
0
 protected function resolveFuture($package, Future $future)
 {
     list($err, $stdout, $stderr) = $future->resolve();
     $parser = new ArcanistGoTestResultParser();
     $messages = $parser->parseTestResults($package, $stdout, $stderr);
     if ($messages === false) {
         if ($err) {
             $future->resolvex();
         } else {
             throw new Exception(sprintf("%s\n\nSTDOUT\n%s\n\nSTDERR\n%s", pht('GoTestEngine failed to parse result!'), $stdout, $stderr));
         }
     }
     return $messages;
 }