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