function action_uninstall($eventData) { global $gLocale, $gLocale, $wuiPage, $gStatus; $tempApplication = new \Innomatic\Application\Application(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), $eventData['appid']); if (!$tempApplication->uninstall()) { $unmetDeps = $tempApplication->getLastActionUnmetDeps(); while (list($key, $val) = each($unmetDeps)) { $unmetDepsStr .= ' ' . $val; } $gStatus = $gLocale->getStr('removeunmetdeps_status') . $unmetDepsStr; } else { $gStatus = $gLocale->getStr('moduninstalled_status'); } }
protected function undeployApplication(PackageInterface $package) { // Add vendor autoloads to access Innomatic Legacy Kernel bridge $vendorDir = $this->composer->getConfig()->get('vendor-dir'); require $vendorDir . '/autoload.php'; $appName = $package->getName(); $appName = substr($appName, strpos($appName, '/') + 1); $legacyKernel = new Kernel(); $result = $legacyKernel->runCallback(function () use($appName) { $appId = \Innomatic\Application\Application::getAppIdFromName($appName); $app = new \Innomatic\Application\Application(InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), $appId); return $app->uninstall(); /* * Due to different handling of dependencies uninstall order * in Composer, we ignore applications that cannot be * uninstalled. */ }); if (!$result) { $this->io->write("<error>Application {$appName} must be manually uninstalled from Innomatic due to reversed dependencies</error>"); } }
$script->cleanExit(); break; case 'deploy': $app = new \Innomatic\Application\Application(InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()); if ((is_dir($argv[2]) or file_exists($argv[2])) and $app->install($argv[2])) { print "Application {$app->appname} deployed\n"; $script->cleanExit(); } else { print "Application not deployed\n"; $script->cleanExit(1); } break; case 'undeploy': $appid = \Innomatic\Application\Application::getAppIdFromName($argv[2]); $app = new \Innomatic\Application\Application(InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), $appid); if ($app->uninstall()) { print "Application {$argv['2']} undeployed\n"; $script->cleanExit(); } else { print "Application {$argv['2']} not undeployed\n"; $script->cleanExit(1); } break; case 'update': $appCentral = new \Innomatic\Application\AppCentralHelper(); $appCentral->updateApplicationsList(function ($serverId, $serverName, $repoId, $repoData) { print 'Server ' . $serverName . ' - Repository ' . $repoData['name'] . '... '; }, function ($result) { print 'done' . PHP_EOL; }); print "Applications list updated\n";