protected function removeGadget(array $info) : string
{
// Is this in the universal gadgets file?
$gadgets = \Airship\loadJSON(ROOT . '/config/gadgets.json');
$found = false;
foreach ($gadgets as $i => $gadget) {
if ($gadget['supplier'] === $info['supplier']) {
if ($gadget['name'] === $info['name']) {
$found = true;
\unlink(\implode('/', [ROOT, 'Gadgets', $info['supplier'], $info['supplier'] . $info['name'] . '.phar']));
unset($gadgets[$i]);
break;
}
}
}
if ($found) {
\Airship\saveJSON(ROOT . '/config/cabins.json', $gadgets);
return "Gadget removed from global configuration.\n";
}
foreach (\glob(ROOT . '/Cabin/*') as $cabinDir) {
if (!\is_dir($cabinDir)) {
continue;
}
$cabin = \Airship\path_to_filename($cabinDir);
$gadgets = \Airship\loadJSON(ROOT . '/Cabin/' . $cabin . '/config/gadgets.json');
$found = false;
foreach ($gadgets as $i => $gadget) {
if ($gadget['supplier'] === $info['supplier']) {
if ($gadget['name'] === $info['name']) {
$found = true;
\unlink(\implode('/', [ROOT, 'Cabin', $cabin, 'Gadgets', $info['supplier'], $info['supplier'] . $info['name'] . '.phar']));
unset($gadgets[$i]);
break;
}
}
}
if ($found) {
\Airship\saveJSON(ROOT . '/config/cabins.json', $gadgets);
return "Gadget removed.\n";
}
}
return "Gadget not found in any configuration.\n";
}