1
0
Fork 0

Report typos in package name if no version matches

pull/1267/merge
Jordi Boggiano 2012-10-31 18:20:54 +01:00
parent 104e048c07
commit 5d78fa6ce6
3 changed files with 16 additions and 5 deletions

View File

@ -33,6 +33,13 @@ class Problem
protected $section = 0; protected $section = 0;
protected $pool;
public function __construct(Pool $pool)
{
$this->pool = $pool;
}
/** /**
* Add a rule as a reason * Add a rule as a reason
* *
@ -88,6 +95,10 @@ class Problem
return "\n - The requested linked library ".$job['packageName'].$this->constraintToText($job['constraint']).' has the wrong version installed or is missing from your system, make sure to have the extension providing it.'; return "\n - The requested linked library ".$job['packageName'].$this->constraintToText($job['constraint']).' has the wrong version installed or is missing from your system, make sure to have the extension providing it.';
} }
if (!$this->pool->whatProvides($job['packageName'])) {
return "\n - The requested package ".$job['packageName'].' could not be found in any version, you most likely did a typo in the package name.';
}
return "\n - The requested package ".$job['packageName'].$this->constraintToText($job['constraint']).' could not be found.'; return "\n - The requested package ".$job['packageName'].$this->constraintToText($job['constraint']).' could not be found.';
} }
} }

View File

@ -83,7 +83,7 @@ class Solver
if ($conflict && RuleSet::TYPE_PACKAGE === $conflict->getType()) { if ($conflict && RuleSet::TYPE_PACKAGE === $conflict->getType()) {
$problem = new Problem; $problem = new Problem($this->pool);
$problem->addRule($rule); $problem->addRule($rule);
$problem->addRule($conflict); $problem->addRule($conflict);
@ -93,7 +93,7 @@ class Solver
} }
// conflict with another job // conflict with another job
$problem = new Problem; $problem = new Problem($this->pool);
$problem->addRule($rule); $problem->addRule($rule);
$problem->addRule($conflict); $problem->addRule($conflict);
@ -146,7 +146,7 @@ class Solver
case 'install': case 'install':
if (!$job['packages']) { if (!$job['packages']) {
$problem = new Problem(); $problem = new Problem($this->pool);
$problem->addRule(new Rule($this->pool, array(), null, null, $job)); $problem->addRule(new Rule($this->pool, array(), null, null, $job));
$this->problems[] = $problem; $this->problems[] = $problem;
} }
@ -465,7 +465,7 @@ class Solver
private function analyzeUnsolvable($conflictRule, $disableRules) private function analyzeUnsolvable($conflictRule, $disableRules)
{ {
$problem = new Problem; $problem = new Problem($this->pool);
$problem->addRule($conflictRule); $problem->addRule($conflictRule);
$this->analyzeUnsolvableRule($problem, $conflictRule); $this->analyzeUnsolvableRule($problem, $conflictRule);

View File

@ -75,7 +75,7 @@ class SolverTest extends TestCase
} catch (SolverProblemsException $e) { } catch (SolverProblemsException $e) {
$problems = $e->getProblems(); $problems = $e->getProblems();
$this->assertEquals(1, count($problems)); $this->assertEquals(1, count($problems));
$this->assertEquals("\n - The requested package b == 1 could not be found.", $problems[0]->getPrettyString()); $this->assertEquals("\n - The requested package b could not be found in any version, you most likely did a typo in the package name.", $problems[0]->getPrettyString());
} }
} }