protected function updateCabinsRegistry(string $nameSpace, array $metadata) : bool
{
// Default route
$defaultPath = ($metadata['default_path'] ?? '*/') . $this->supplier->getName() . '/' . $this->package;
$twigEnv = \Airship\configWriter(ROOT . '/config/templates');
$cabins = \Airship\loadJSON(ROOT . '/config/cabins.json');
// We want to load everything before the wildcard entry:
if (isset($cabins['*'])) {
$newCabins = [];
foreach (\array_keys($cabins) as $k) {
if ($k !== '*') {
$newCabins[$k] = $cabins[$k];
}
}
$newCabins[$defaultPath] = ['https' => false, 'canon_url' => '/' . $this->supplier->getName() . '/' . $this->package, 'language' => (string) ($metadata['lang'] ?? 'en-us'), 'name' => $nameSpace];
$newCabins['*'] = $cabins['*'];
} else {
$newCabins = $cabins;
$newCabins[$defaultPath] = ['https' => false, 'canon_url' => '/' . $this->supplier->getName() . '/' . $this->package, 'language' => (string) ($metadata['lang'] ?? 'en-us'), 'name' => $nameSpace];
}
return \file_put_contents(ROOT . '/config/cabins.json', $twigEnv->render('cabins.twig', ['cabins' => $newCabins])) !== false;
}