/** * Handle the command. * * @param SettingRepositoryInterface $settings * @param AddonCollection $addons * @param Repository $config */ public function handle(SettingRepositoryInterface $settings, AddonCollection $addons, Repository $config) { /* @var Addon $addon */ foreach ($addons->withConfig('settings') as $addon) { foreach ($config->get($addon->getNamespace('settings')) as $key => $setting) { if (isset($setting['env']) && env($setting['env']) !== null) { continue; } if (!isset($setting['bind'])) { continue; } if (!$settings->has($key = $addon->getNamespace($key))) { continue; } $config->set($setting['bind'], $settings->value($key)); } } foreach ($addons->withConfig('settings/settings') as $addon) { foreach ($config->get($addon->getNamespace('settings/settings')) as $key => $setting) { if (isset($setting['env']) && env($setting['env']) !== null) { continue; } if (!isset($setting['bind'])) { continue; } if (!$settings->has($key = $addon->getNamespace($key))) { continue; } $config->set($setting['bind'], $settings->value($key)); } } foreach ($config->get('streams::settings/settings', []) as $key => $setting) { if (isset($setting['env']) && env($setting['env']) !== null) { continue; } if (!isset($setting['bind'])) { continue; } if (!$settings->has($key = 'streams::' . $key)) { continue; } $config->set($setting['bind'], $settings->value($key)); } }