summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Dahlin <jdahlin@async.com.br>2007-06-28 15:15:02 +0000
committerJohan Dahlin <johan@src.gnome.org>2007-06-28 15:15:02 +0000
commit118f2e6483b844908f3a497621a47c035cbf0efc (patch)
treedf980a784c110e272c52b356779e5eabba544754
parent3709aee045b0e10bcde1498a7c0e9a5c8d44f182 (diff)
downloadgdk-pixbuf-118f2e6483b844908f3a497621a47c035cbf0efc.tar.gz
Prettify the output by running it through xmllint --format if xmllint is
2007-06-28 Johan Dahlin <jdahlin@async.com.br> * gtk/gtk-builder-convert (_indent): Prettify the output by running it through xmllint --format if xmllint is available which also requires the subprocess module only available in python 2.4 or later svn path=/trunk/; revision=18281
-rw-r--r--ChangeLog7
-rw-r--r--gtk/gtk-builder-convert34
2 files changed, 38 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 69f8dff9c..ef2551352 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-06-28 Johan Dahlin <jdahlin@async.com.br>
+
+ * gtk/gtk-builder-convert (_indent): Prettify the output by
+ running it through xmllint --format if xmllint is available
+ which also requires the subprocess module only available
+ in python 2.4 or later
+
2007-06-28 Christian Persch <chpe@gnome.org>
* gtk/gtkvolumebutton.c: (gtk_volume_button_class_init),
diff --git a/gtk/gtk-builder-convert b/gtk/gtk-builder-convert
index 7237c8fb2..be33edf4e 100644
--- a/gtk/gtk-builder-convert
+++ b/gtk/gtk-builder-convert
@@ -25,10 +25,18 @@
# GtkTextView.text -> GtkTextBuffer
# Toolbars
+import os
import sys
from xml.dom import minidom, Node
+# The subprocess is only available in Python 2.4+
+try:
+ import subprocess
+ subprocess # pyflakes
+except ImportError:
+ subprocess = None
+
def get_child_nodes(node):
nodes = []
for child in node.childNodes:
@@ -354,14 +362,34 @@ class GtkBuilderConverter(object):
widget.getAttributeNode("constructor").value = parent_id
node.removeAttribute("id")
+def _indent(output):
+ if not subprocess:
+ return output
+
+ for directory in os.environ['PATH'].split(os.pathsep):
+ filename = os.path.join(directory, 'xmllint')
+ if os.path.exists(filename):
+ break
+ else:
+ return output
+
+ s = subprocess.Popen([filename, '--format', '-'],
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE)
+ s.stdin.write(output)
+ s.stdin.close()
+ return s.stdout.read()
+
def main():
if len(sys.argv) < 2:
- print "Usage: %s filename.glade" % (sys.argv[0],)
- return
+ raise SystemExit("Usage: %s filename.glade" % (sys.argv[0],))
+
conv = GtkBuilderConverter()
conv.parse_file(sys.argv[1])
- print conv.to_xml()
+
+ xml = conv.to_xml()
+ print _indent(xml)
if __name__ == "__main__":
main()