about summary refs log tree commit diff
path: root/src/libutil
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2006-08-03T14·49+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2006-08-03T14·49+0000
commit0e267e2625dba2c771996bcf537d1ebb6956ba58 (patch)
treea6425f8122d391510d021cbb56e629faca04e562 /src/libutil
parent4750f6c5ed8f74683ebaa013079e24598a753cbe (diff)
* `nix-instantiate --print-args': produce XML output so that the
  result can be used more easily by scripts.

Diffstat (limited to 'src/libutil')
-rw-r--r--src/libutil/Makefile.am3
-rw-r--r--src/libutil/xml-writer.cc59
-rw-r--r--src/libutil/xml-writer.hh64
3 files changed, 69 insertions, 57 deletions
diff --git a/src/libutil/Makefile.am b/src/libutil/Makefile.am
index 8fab0c5b05..513d8ecf5e 100644
--- a/src/libutil/Makefile.am
+++ b/src/libutil/Makefile.am
@@ -2,7 +2,8 @@ lib_LTLIBRARIES = libutil.la
 
 libutil_la_SOURCES = util.cc util.hh hash.cc hash.hh \
  archive.cc archive.hh aterm.cc aterm.hh \
- aterm-map.cc aterm-map.hh
+ aterm-map.cc aterm-map.hh \
+ xml-writer.cc xml-writer.hh
 
 if !HAVE_OPENSSL
 libutil_la_SOURCES += \
diff --git a/src/libutil/xml-writer.cc b/src/libutil/xml-writer.cc
index 2699449095..b0e25f2c71 100644
--- a/src/libutil/xml-writer.cc
+++ b/src/libutil/xml-writer.cc
@@ -1,61 +1,6 @@
-#include <iostream>
-#include <string>
-#include <list>
-#include <map>
 #include <assert.h>
-using namespace std;
 
-
-typedef map<string, string> XMLAttrs;
-
-
-class XMLWriter
-{
-private:
-    
-    ostream & output;
-
-    bool closed;
-
-    list<string> pendingElems;
-
-public:
-
-    XMLWriter(ostream & output);
-    ~XMLWriter();
-
-    void close();
-
-    void openElement(const string & name,
-        const XMLAttrs & attrs = XMLAttrs());
-    void closeElement();
-
-    void writeShortElement(const string & name,
-        const XMLAttrs & attrs = XMLAttrs());
-    
-    void writeCharData(const string & data);
-
-private:
-    void writeAttrs(const XMLAttrs & attrs);
-};
-
-
-class XMLOpenElement
-{
-private:
-    XMLWriter & writer;
-public:
-    XMLOpenElement(XMLWriter & writer, const string & name,
-        const XMLAttrs & attrs = XMLAttrs())
-        : writer(writer)
-    {
-        writer.openElement(name, attrs);
-    }
-    ~XMLOpenElement()
-    {
-        writer.closeElement();
-    }
-};
+#include "xml-writer.hh"
 
 
 XMLWriter::XMLWriter(ostream & output)
@@ -138,6 +83,7 @@ void XMLWriter::writeAttrs(const XMLAttrs & attrs)
 }
 
 
+#if 0
 int main(int argc, char * * argv)
 {
     XMLWriter doc(cout);
@@ -159,3 +105,4 @@ int main(int argc, char * * argv)
 
     return 0;
 }
+#endif
diff --git a/src/libutil/xml-writer.hh b/src/libutil/xml-writer.hh
new file mode 100644
index 0000000000..84c7fafbc9
--- /dev/null
+++ b/src/libutil/xml-writer.hh
@@ -0,0 +1,64 @@
+#ifndef __XML_WRITER_H
+#define __XML_WRITER_H
+
+#include <iostream>
+#include <string>
+#include <list>
+#include <map>
+
+using namespace std;
+
+
+typedef map<string, string> XMLAttrs;
+
+
+class XMLWriter
+{
+private:
+    
+    ostream & output;
+
+    bool closed;
+
+    list<string> pendingElems;
+
+public:
+
+    XMLWriter(ostream & output);
+    ~XMLWriter();
+
+    void close();
+
+    void openElement(const string & name,
+        const XMLAttrs & attrs = XMLAttrs());
+    void closeElement();
+
+    void writeShortElement(const string & name,
+        const XMLAttrs & attrs = XMLAttrs());
+    
+    void writeCharData(const string & data);
+
+private:
+    void writeAttrs(const XMLAttrs & attrs);
+};
+
+
+class XMLOpenElement
+{
+private:
+    XMLWriter & writer;
+public:
+    XMLOpenElement(XMLWriter & writer, const string & name,
+        const XMLAttrs & attrs = XMLAttrs())
+        : writer(writer)
+    {
+        writer.openElement(name, attrs);
+    }
+    ~XMLOpenElement()
+    {
+        writer.closeElement();
+    }
+};
+
+
+#endif /* !__XML_WRITER_H */