public function postAction()
 {
     if (!Input::has('action') || !Input::has('actionID')) {
         return Response::make('Improper Request', 401);
     }
     $action = Input::get('action');
     $fields = Input::get('fields');
     foreach ($fields as $key => $value) {
         switch ($key) {
             case 'prefer':
                 $fields['prefer-' . $value] = null;
                 unset($fields[$key]);
                 break;
             case 'packages':
                 $count = count($value);
                 $packages = null;
                 if ($count == 1 && !in_array($action, array('require', 'remove'))) {
                     foreach ($value as $package) {
                         $fields['package'] = $package;
                     }
                 } elseif ($count) {
                     foreach ($value as $package) {
                         $packages[] = $package;
                     }
                 }
                 $fields['packages'] = $packages;
                 break;
             case 'devPackages':
                 $count = count($value);
                 $packages = null;
                 if ($count) {
                     foreach ($value as $package => $version) {
                         $packages[] = $package . ':' . $version;
                     }
                 }
                 unset($fields['devPackages']);
                 $fields['packages'] = $packages;
                 break;
         }
     }
     $logDirectory = storage_path() . '/logs/ComposerUI';
     if (!File::exists($logDirectory)) {
         File::makeDirectory($logDirectory);
     } else {
         if (!File::isDirectory($logDirectory)) {
             File::delete($logDirectory);
             File::makeDirectory($logDirectory);
         }
     }
     $outputFile = $logDirectory . '/' . Input::get('actionID') . '-output';
     $output = new StreamOutput(fopen($outputFile, 'w'), StreamOutput::VERBOSITY_NORMAL, false, new HtmlOutputFormatter());
     $composer = new ComposerUI(Session::get("ComposerUI.workingDir"), $output);
     var_dump($fields);
     File::put($logDirectory . '/' . Input::get('actionID') . '-status', 'working');
     $response = Response::json($composer->run($action, $fields));
     File::put($logDirectory . '/' . Input::get('actionID') . '-status', 'complete');
     return $response;
 }
Exemple #2
0
 public function testRemoveDev()
 {
     $tempDir = $this->testInstall();
     $app = new ComposerUI($tempDir);
     $vendorDir = $tempDir . DIRECTORY_SEPARATOR . 'vendor';
     $this->assertTrue($app->remove(array("phpunit/phpunit"), true));
     $this->assertFileExists($vendorDir);
     $this->assertFileExists($vendorDir . DIRECTORY_SEPARATOR . 'seld' . DIRECTORY_SEPARATOR . 'jsonlint');
     $this->assertFileNotExists($vendorDir . DIRECTORY_SEPARATOR . 'phpunit' . DIRECTORY_SEPARATOR . 'phpunit');
 }