]> granicus.if.org Git - icinga2/commitdiff
Use ConfigWriter class in repositoryutility.cpp
authorJean Flach <jean-marcel.flach@netways.de>
Tue, 9 Feb 2016 14:55:39 +0000 (15:55 +0100)
committerJean Flach <jean-marcel.flach@netways.de>
Tue, 9 Feb 2016 14:59:19 +0000 (15:59 +0100)
refs #10989

lib/base/configwriter.hpp
lib/cli/repositoryutility.cpp

index bc7862a480d7d78708768653457cbe4f88809154..f7d535667429c6192545e9060cd8a1defe3bc933 100644 (file)
@@ -73,8 +73,8 @@ public:
        static void EmitFunctionCall(std::ostream& fp, const String& name, const Array::Ptr& arguments);
 
        static const std::vector<String>& GetKeywords(void);
-       static String EscapeIcingaString(const String& str);
 private:
+       static String EscapeIcingaString(const String& str);
        ConfigWriter(void);
 };
 
index 3c9e49e9fb2e0a9065e4edbd54afbe28ddaec58d..e8c49a05dfe5b583b783f4d187fd961277d8f86d 100644 (file)
@@ -670,7 +670,7 @@ void RepositoryUtility::FormatChangelogEntry(std::ostream& fp, const Dictionary:
                        continue;
 
                fp << std::setw(4) << " " << ConsoleColorTag(Console_ForegroundGreen) << kv.first << ConsoleColorTag(Console_Normal) << " = ";
-               FormatValue(fp, kv.second);
+               ConfigWriter::EmitValue(fp, 0, kv.second);
                fp << "\n";
        }
 }
@@ -681,7 +681,9 @@ void RepositoryUtility::FormatChangelogEntry(std::ostream& fp, const Dictionary:
  */
 void RepositoryUtility::SerializeObject(std::ostream& fp, const String& name, const String& type, const Dictionary::Ptr& object)
 {
-       fp << "object " << type << " \"" << ConfigWriter::EscapeIcingaString(name) << "\" {\n";
+       fp << "object " << type << " ";
+       ConfigWriter::EmitString(fp, name);
+       fp << " {\n";
 
        if (!object) {
                fp << "}\n";
@@ -693,7 +695,9 @@ void RepositoryUtility::SerializeObject(std::ostream& fp, const String& name, co
 
                ObjectLock olock(imports);
                BOOST_FOREACH(const String& import, imports) {
-                       fp << "\t" << "import \"" << import << "\"\n";
+                       fp << "\t" << "import ";
+                       ConfigWriter::EmitString(fp, import);
+                       fp << '\n';
                }
        }
 
@@ -702,49 +706,12 @@ void RepositoryUtility::SerializeObject(std::ostream& fp, const String& name, co
                if (kv.first == "import" || kv.first == "name" || kv.first == "__name") {
                        continue;
                } else {
-                       fp << "\t" << kv.first << " = ";
-                       FormatValue(fp, kv.second);
+                       fp << "\t";
+                       ConfigWriter::EmitIdentifier(fp, kv.first, true);
+                       fp << " = ";
+                       ConfigWriter::EmitValue(fp, 1, kv.second);
                }
                fp << "\n";
        }
        fp << "}\n";
 }
-
-void RepositoryUtility::FormatValue(std::ostream& fp, const Value& val)
-{
-       if (val.IsObjectType<Array>()) {
-               FormatArray(fp, val);
-               return;
-       }
-
-       if (val.IsString()) {
-               fp << "\"" << ConfigWriter::EscapeIcingaString(val) << "\"";
-               return;
-       }
-
-       fp << ConfigWriter::EscapeIcingaString(val);
-}
-
-void RepositoryUtility::FormatArray(std::ostream& fp, const Array::Ptr& arr)
-{
-       bool first = true;
-
-       fp << "[ ";
-
-       if (arr) {
-               ObjectLock olock(arr);
-               BOOST_FOREACH(const Value& value, arr) {
-                       if (first)
-                               first = false;
-                       else
-                               fp << ", ";
-
-                       FormatValue(fp, value);
-               }
-       }
-
-       if (!first)
-               fp << " ";
-
-       fp << "]";
-}