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>");
     }
 }
Example #2
0
            $script->cleanExit();
            break;
        case 'appenable':
            $tenant = new \Innomatic\Domain\Domain(InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), $argv[2], null);
            $appid = \Innomatic\Application\Application::getAppIdFromName($argv[3]);
            if ($tenant->enableApplication($appid)) {
                print "Application {$argv['3']} enabled to tenant {$argv['2']}\n";
                $script->cleanExit();
            } else {
                print "Application {$argv['3']} not enabled to tenant {$argv['2']}\n";
                $script->cleanExit(1);
            }
            break;
        case 'appdisable':
            $tenant = new \Innomatic\Domain\Domain(InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), $argv[2], null);
            $appid = \Innomatic\Application\Application::getAppIdFromName($argv[3]);
            if ($tenant->disableApplication($appid)) {
                print "Application {$argv['3']} disabled from tenant {$argv['2']}\n";
                $script->cleanExit();
            } else {
                print "Application {$argv['3']} not disabled from tenant {$argv['2']}\n";
                $script->cleanExit(1);
            }
            break;
        default:
            print 'Usage: php innomatic/core/scripts/tenant.php command' . "\n";
            print 'Type tenant.php -h for a list of supported commands' . "\n";
    }
} catch (\Exception $e) {
    echo $e;
}