Ver código fonte

Generate transaction from solver's final decision queue.

Nils Adermann 14 anos atrás
pai
commit
f3d9c8701a
1 arquivos alterados com 17 adições e 1 exclusões
  1. 17 1
      src/Composer/DependencyResolver/Solver.php

+ 17 - 1
src/Composer/DependencyResolver/Solver.php

@@ -574,8 +574,24 @@ class Solver
 
         //findrecommendedsuggested(solv);
         //solver_prepare_solutions(solv);
-        //transaction_calculate(&solv->trans, &solv->decisionq, &solv->noobsoletes);
 
+        $transaction = array();
+
+        foreach ($this->decisionQueue as $literal) {
+            $package = $literal->getPackage();
+
+            // wanted & installed || !wanted & !installed
+            if ($literal->isWanted() == ($this->installed == $package->getRepository())) {
+                continue;
+            }
+
+            $transaction[] = array(
+                'job' => ($literal->isWanted()) ? 'install' : 'remove',
+                'package' => $package,
+            );
+        }
+
+        return $transaction;
     }
 
     public function printRules()