1 update.install update_update_1005()

Check for a faulty installer.settings.json and fix it or remove it if needed.

Related topics

File

core/modules/update/update.install, line 245
Install, update, and uninstall functions for the Update Manager module.

Code

function update_update_1005() {
  // Saving the Available Update settings form at admin/reports/updates/settings
  // used to create a defective copy of installer.settings.json in earlier
  // Backdrop versions. This update hook fixes or removes this defective file.
  // @see https://github.com/backdrop/backdrop-issues/issues/5690
  $config = config('installer.settings');
  // Only act if the config file exists. If isNew() returns TRUE, this means
  // the config object is new, and therefore the file doesn't exist, in
  // which case, we skip processing.
  if (!$config->isNew()) {
    // Now check to see if installer is installed.
    // We must do this by getting the current schema version, as module_exists()
    // doesn't tell us if the module is disabled or uninstalled.
    $schema_version = backdrop_get_installed_schema_version('installer');
    if ($schema_version < 0) {
      // Installer is uninstalled. Remove the faulty config file.
      $config->delete();
    }
    elseif (empty($config->get('installer_server'))) {
      // Installer is installed.
      // Fix the config file only if the key installer_server is not present.
      $config->set('installer_server', array(
        'url' => 'https://projects.backdropcms.org',
        'name' => 'Backdrop',
      ));
      $config->save();
    }
  }
}