Airship\Cabin\Bridge\Blueprint\Skyport::removeCabin PHP Method

removeCabin() protected method

Remove a cabin
protected removeCabin ( array $info ) : string
$info array
return string
    protected function removeCabin(array $info) : string
    {
        $ret = '';
        $cabins = \Airship\loadJSON(ROOT . '/config/cabins.json');
        $search = $this->makeNamespace($info['supplier'], $info['name']);
        foreach ($cabins as $i => $cabin) {
            if ($cabin['name'] === $search) {
                $ret .= "Removed {$search} from config/cabins.json\n";
                $symlink = ROOT . '/Cabin/Bridge/Lens/cabin_links/' . $search;
                if (\is_link($symlink)) {
                    \unlink($symlink);
                }
                unset($cabins[$i]);
            }
        }
        if (empty($ret)) {
            return 'Cabin not configured or missing.';
        }
        $twigEnv = \Airship\configWriter(ROOT . 'config/templates');
        // Save cabins.json
        \file_put_contents(ROOT . '/config/cabins.json', $twigEnv->render('cabins.twig', ['cabins' => $cabins]));
        /**
         * @security Watch this carefully:
         */
        $ret .= \shell_exec('rm -rf ' . \escapeshellarg(ROOT . '/Cabin/' . $search));
        return $ret;
    }