void save_gui_cfg() { YAML::Emitter out; out.SetSeqFormat(YAML::Flow); out << g_gui_cfg; // Save to file s_gui_cfg.seek(0); s_gui_cfg.trunc(0); s_gui_cfg.write(out.c_str(), out.size()); }
int main(int argc, char* argv[]) { (void) argc; (void) argv; // Create a new yaml document std::cout << "Creating a yaml file:" << std::endl; RMatrix<1,1> s; s << 42; RMatrix<3,1> col; col << 1,2,3; RMatrix<1,3> row; row << 1,2,3; RMatrix<2,2> R; R << 1, 2, 3, 4; CMatrix<3,3> C; C << 1.1, 1.2, 1.3, complex_t(1,1), complex_t(1.2,3.4), 0, 3.1, 3.2, 3.3; YAML::Node root; root["scalar"] = s; root["row"] = row; root["col"] = col; root["R"] = R; root["C"] = C; YAML::Emitter out; out.SetIndent(4); //out.SetMapFormat(YAML::Flow); out.SetSeqFormat(YAML::Flow); out << root; std::cout << out.c_str() << std::endl; std::ofstream fout("matrices.yaml"); fout << out.c_str() << std::endl; }
void ComplexGlobalSettings(YAML::Emitter& out, std::string& desiredOutput) { out << YAML::BeginSeq; out << YAML::Block; out << YAML::BeginMap; out << YAML::Key << "key 1" << YAML::Value << "value 1"; out << YAML::Key << "key 2" << YAML::Value; out.SetSeqFormat(YAML::Flow); out << YAML::BeginSeq << "a" << "b" << "c" << YAML::EndSeq; out << YAML::EndMap; out << YAML::BeginMap; out << YAML::Key << YAML::BeginSeq << 1 << 2 << YAML::EndSeq; out << YAML::Value << YAML::BeginMap << YAML::Key << "a" << YAML::Value << "b" << YAML::EndMap; out << YAML::EndMap; out << YAML::EndSeq; desiredOutput = "- key 1: value 1\n key 2: [a, b, c]\n- [1, 2]:\n a: b"; }
void GenerateReportData(const Game& game, std::list<Message>& messages, const std::list<Plugin>& plugins, const std::string& masterlistVersion, const std::string& masterlistDate, const bool masterlistUpdateEnabled) { YAML::Node oldDetails; GetOldReportDetails(game.ReportDataPath(), oldDetails); //Need to output YAML as a JSON Javascript variable. YAML::Emitter yout; yout.SetOutputCharset(YAML::EscapeNonAscii); yout.SetStringFormat(YAML::DoubleQuoted); yout.SetBoolFormat(YAML::TrueFalseBool); yout.SetSeqFormat(YAML::Flow); yout.SetMapFormat(YAML::Flow); BOOST_LOG_TRIVIAL(debug) << "Generating JSON report data."; yout << YAML::BeginMap; yout << YAML::Key << "lootVersion" << YAML::Value << IntToString(g_version_major) + "." + IntToString(g_version_minor) + "." + IntToString(g_version_patch); yout << YAML::Key << "masterlist" << YAML::BeginMap << YAML::Key << "updaterEnabled" << YAML::Value; if (masterlistUpdateEnabled) yout << boost::locale::translate("Enabled").str(); else yout << boost::locale::translate("Disabled").str(); yout << YAML::Key << "revision" << YAML::Value << masterlistVersion << YAML::Key << "date" << YAML::Value << masterlistDate << YAML::EndMap; if (!plugins.empty()) { BOOST_LOG_TRIVIAL(debug) << "Generating JSON plugin data."; YAML::Emitter tempout; tempout.SetOutputCharset(YAML::EscapeNonAscii); tempout.SetStringFormat(YAML::DoubleQuoted); tempout.SetBoolFormat(YAML::TrueFalseBool); tempout.SetSeqFormat(YAML::Flow); tempout.SetMapFormat(YAML::Flow); tempout << YAML::BeginSeq; for (std::list<Plugin>::const_iterator it = plugins.begin(), endit = plugins.end(); it != endit; ++it) { WritePlugin(tempout, *it, game); } tempout << YAML::EndSeq; YAML::Node node = YAML::Load(tempout.c_str()); if (AreDetailsEqual(node, oldDetails)) messages.push_front(loot::Message(loot::Message::say, boost::locale::translate("There have been no changes in the Details tab since LOOT was last run for this game.").str())); //Need to generate output twice because passing the node causes !<!> to be written before every key and value for some reason. yout << YAML::Key << "plugins" << YAML::Value << YAML::BeginSeq; for (std::list<Plugin>::const_iterator it = plugins.begin(), endit = plugins.end(); it != endit; ++it) { WritePlugin(yout, *it, game); } yout << YAML::EndSeq; } else if (oldDetails.size() == 0) messages.push_front(loot::Message(loot::Message::say, boost::locale::translate("There have been no changes in the Details tab since LOOT was last run for this game.").str())); if (!messages.empty()) { BOOST_LOG_TRIVIAL(debug) << "Generating JSON general message data."; yout << YAML::Key << "globalMessages" << YAML::Value << YAML::BeginSeq; for (std::list<Message>::const_iterator it = messages.begin(), endit = messages.end(); it != endit; ++it) { WriteMessage(yout, *it); } yout << YAML::EndSeq; } BOOST_LOG_TRIVIAL(debug) << "Generating text translations."; yout << YAML::Key << "l10n" << YAML::BeginMap << YAML::Key << "txtSummarySec" << YAML::Value << boost::locale::translate("Summary").str() << YAML::Key << "txtSummary" << YAML::Value << boost::locale::translate("Summary").str() << YAML::Key << "txtLootVersion" << YAML::Value << boost::locale::translate("LOOT Version").str() << YAML::Key << "txtMasterlistRevision" << YAML::Value << boost::locale::translate("Masterlist Revision").str() << YAML::Key << "txtMasterlistDate" << YAML::Value << boost::locale::translate("Masterlist Date").str() << YAML::Key << "txtMasterlistUpdating" << YAML::Value << boost::locale::translate("Masterlist Updating").str() << YAML::Key << "txtTotalMessageNo" << YAML::Value << boost::locale::translate("Total Number of Messages").str() << YAML::Key << "txtTotalWarningNo" << YAML::Value << boost::locale::translate("Number of Warnings").str() << YAML::Key << "txtTotalErrorNo" << YAML::Value << boost::locale::translate("Number of Errors").str() << YAML::Key << "txtGeneralMessages" << YAML::Value << boost::locale::translate("General Messages").str() << YAML::Key << "txtDetailsSec" << YAML::Value << boost::locale::translate("Details").str() << YAML::Key << "filtersToggle" << YAML::Value << boost::locale::translate("Filters").str() << YAML::Key << "txtHideVersionNumbers" << YAML::Value << boost::locale::translate("Hide Version Numbers").str() << YAML::Key << "txtHideCRCs" << YAML::Value << boost::locale::translate("Hide CRCs").str() << YAML::Key << "txtHideBashTags" << YAML::Value << boost::locale::translate("Hide Bash Tag Suggestions").str() << YAML::Key << "txtHideNotes" << YAML::Value << boost::locale::translate("Hide Notes").str() << YAML::Key << "txtHideDoNotCleanMessages" << YAML::Value << boost::locale::translate("Hide 'Do Not Clean' Messages").str() << YAML::Key << "txtHideInactivePluginMessages" << YAML::Value << boost::locale::translate("Hide Inactive Plugin Messages").str() << YAML::Key << "txtHideAllPluginMessages" << YAML::Value << boost::locale::translate("Hide All Plugin Messages").str() << YAML::Key << "txtHideMessagelessPlugins" << YAML::Value << boost::locale::translate("Hide Messageless Plugins").str() << YAML::Key << "txtPluginsHidden" << YAML::Value << boost::locale::translate("Plugins hidden").str() << YAML::Key << "txtMessagesHidden" << YAML::Value << boost::locale::translate("Messages hidden").str() << YAML::EndMap; yout << YAML::EndMap; loot::ofstream out(game.ReportDataPath()); out << "var data = " << yout.c_str(); out.close(); }