public function execute(InputInterface $input, OutputInterface $output) { $tempDir = $input->getArgument('temp_dir'); $targetDir = $input->getArgument('target'); $packageDir = $input->getArgument('package_dir'); $rollback = $input->getOption('rollback'); $updater = new Updater(); $jsonManager = new JsonManager($packageDir); $updater->setPackageService(new PackageService())->setTempDir($tempDir)->setWorkingDir($targetDir); $updateService = new UpdateService($updater); $packageService = $updater->getPackageService(); $diffFile = $jsonManager->getJsonFromFile(); $packageJson = json_decode($diffFile, true); $package = $packageService->fillPackage($packageJson); $package->setPackageDir(realpath($packageDir)); $updateService->setPackage($package); if ($rollback) { $updateService->rollbackUpdate(); $output->writeln('<info>Changes have been rollbacked.</info>'); return true; } $isUpdated = $updateService->doUpdate(); if ($isUpdated) { $output->writeln('<info>Your application has been successfully updated.</info>'); return true; } $output->writeln('<error>Error occured. Your application was not updated. Rolling back changes.</error>'); return false; }
public function let($die) { $updater = new Updater(); $updater->setPackageService(new PackageService())->setTempDir(realpath(__DIR__ . '/../../sample_app/cache'))->setWorkingDir(realpath(__DIR__ . '/../../sample_app')); $this->beConstructedWith($updater); $packageService = $updater->getPackageService(); $packageJson = array(json_decode(file_get_contents(__DIR__ . '/../../packages/update-4.3.1.json'), true)); $package = $packageService->fillPackage($packageJson[0]); $package->setPackageDir(realpath(__DIR__ . '/../../../spec/packages') . '/update-4.3.1.zip'); $this->setPackage($package); }