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; }