3 import glob
, os
, sys
, dircache
, xml
.dom
.minidom
6 INKSCAPE
= "/usr/bin/inkscape"
9 # getText() by Mark Pilgrim
12 return isinstance(node
, xml
.dom
.minidom
.Text
)
16 return "".join(map(getData
, filter(isTextNode
, self
.childNodes
)))
22 svg
= xml
.dom
.minidom
.parse(SRC
+ "/" + file)
23 for icon
in svg
.getElementsByTagName("g"):
24 if icon
.getAttribute("inkscape:label").find("plate") == -1:
26 for in_node
in icon
.getElementsByTagName("text"):
27 if in_node
.getAttribute("inkscape:label") == "icon-name":
28 icon_name
= getText(in_node
.getElementsByTagName("tspan")[0])
29 if in_node
.getAttribute("inkscape:label") == "context":
30 context
= getText(in_node
.getElementsByTagName("tspan")[0])
31 print "\t\t%s/%s" % (context
, icon_name
)
32 for box
in icon
.getElementsByTagName("rect"):
33 bid
= box
.getAttribute("id")
34 size
= "%sx%s" % (box
.getAttribute("width"),
35 box
.getAttribute("height"))
36 src
= "%s/%s" % (SRC
, file)
37 dest
= "%s/%s.png" % (context
, icon_name
)
38 cmd
= INKSCAPE
+ " -i " + bid
+ " -e " + dest
+ " " + src
+ " > /dev/null 2>&1"
39 if not os
.path
.isdir(context
):
41 #print "\t\t\t%s/%s" % (context, icon_name)
46 print "Rendering from SVGs in %s" % (SRC
)
47 for file in dircache
.listdir(SRC
):
48 if file.endswith(".svg"):
51 for svgname
in sys
.argv
[1:]:
52 file = svgname
+ ".svg"
53 if os
.path
.isfile(SRC
+ "/" + file):
56 print "Error: No such file: %s" % (file)