continue; } if (is_string($entry->get_config_answer()) && $entry->get_config_answer() == $entry->get_default_answer()) { continue; } $undocumented_configs[] = $entry; } if (count($undocumented_configs) > 0) { output("\nThe following settings are missing or differing in your config:\n(Missing values are marked with an asterisk '*')\n"); foreach ($undocumented_configs as $entry) { output((is_string($entry->get_config_answer()) ? " " : "* ") . $entry->get_config_key() . " = " . $entry->get_config_answer() . " (default: " . $entry->get_default_answer() . ")\n"); } $ask_continue = new ConfigEntry("continue", "YesNo", "\nDo you want to insert or change any of these?"); if ($ask_continue->ask() == "yes") { foreach ($undocumented_configs as $entry) { $entry = $config->add_entry($entry->get_config_key(), "Any", $entry->get_config_key()); $entry->set_is_optional(TRUE); // if the user didn't set a value for an undocumented entry, make it undocumented again: if (!is_string($entry->ask())) { $config->remove_entry($entry->get_config_key()); $config->add_undocumented_entry($entry->get_config_key(), $entry->get_default_answer()); } } } } // show config and changes to user: output("\nYour chosen settings:\n(Changed values are marked with an asterisk '*')\n"); foreach ($config->get_entries() as $entry) { output(($entry->has_changed() ? "* " : " ") . $entry->get_config_key() . " = " . $entry->get_answer() . "\n"); } // write config to file (if necessary):