diff options
Diffstat (limited to 'core/Command/App/Install.php')
-rw-r--r-- | core/Command/App/Install.php | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/core/Command/App/Install.php b/core/Command/App/Install.php index 7248ec1e425..30fd96a95b1 100644 --- a/core/Command/App/Install.php +++ b/core/Command/App/Install.php @@ -2,6 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ <skjnldsv@protonmail.com> + * @author Maxopoly <max@dermax.org> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author sualko <klaus@jsxc.org> @@ -21,7 +25,6 @@ * along with this program. If not, see <http://www.gnu.org/licenses/> * */ - namespace OC\Core\Command\App; use OC\Installer; @@ -32,7 +35,6 @@ use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; class Install extends Command { - protected function configure() { $this ->setName('app:install') @@ -48,11 +50,18 @@ class Install extends Command { InputOption::VALUE_NONE, 'don\'t enable the app afterwards' ) + ->addOption( + 'force', + 'f', + InputOption::VALUE_NONE, + 'install the app regardless of the Nextcloud version requirement' + ) ; } - protected function execute(InputInterface $input, OutputInterface $output) { + protected function execute(InputInterface $input, OutputInterface $output): int { $appId = $input->getArgument('app-id'); + $forceEnable = (bool) $input->getOption('force'); if (\OC_App::getAppPath($appId)) { $output->writeln($appId . ' already installed'); @@ -63,18 +72,19 @@ class Install extends Command { /** @var Installer $installer */ $installer = \OC::$server->query(Installer::class); $installer->downloadApp($appId); - $result = $installer->installApp($appId); - } catch(\Exception $e) { + $result = $installer->installApp($appId, $forceEnable); + } catch (\Exception $e) { $output->writeln('Error: ' . $e->getMessage()); return 1; } - if($result === false) { + if ($result === false) { $output->writeln($appId . ' couldn\'t be installed'); return 1; } - $output->writeln($appId . ' installed'); + $appVersion = \OC_App::getAppVersion($appId); + $output->writeln($appId . ' ' . $appVersion . ' installed'); if (!$input->getOption('keep-disabled')) { $appClass = new \OC_App(); |