mirror of
https://github.com/servo/servo.git
synced 2025-06-24 00:54:32 +01:00
77 lines
2 KiB
Python
Executable file
77 lines
2 KiB
Python
Executable file
#!/usr/bin/python
|
|
import os
|
|
import sys
|
|
|
|
THIS_NAME = "generate.py"
|
|
|
|
# Note: these lists must be kept in sync with the lists in
|
|
# Document-createElement-namespace.html, and this script must be run whenever
|
|
# the lists are updated. (We could keep the lists in a shared JSON file, but
|
|
# seems like too much effort.)
|
|
FILES = (
|
|
("empty", ""),
|
|
("minimal_html", "<!doctype html><title></title>"),
|
|
|
|
("xhtml", '<html xmlns="http://www.w3.org/1999/xhtml"></html>'),
|
|
("svg", '<svg xmlns="http://www.w3.org/2000/svg"></svg>'),
|
|
("mathml", '<mathml xmlns="http://www.w3.org/1998/Math/MathML"></mathml>'),
|
|
|
|
("bare_xhtml", "<html></html>"),
|
|
("bare_svg", "<svg></svg>"),
|
|
("bare_mathml", "<math></math>"),
|
|
|
|
("xhtml_ns_removed", """\
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head><script>
|
|
var newRoot = document.createElementNS(null, "html");
|
|
document.removeChild(document.documentElement);
|
|
document.appendChild(newRoot);
|
|
</script></head>
|
|
</html>
|
|
"""),
|
|
("xhtml_ns_changed", """\
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head><script>
|
|
var newRoot = document.createElementNS("http://www.w3.org/2000/svg", "abc");
|
|
document.removeChild(document.documentElement);
|
|
document.appendChild(newRoot);
|
|
</script></head>
|
|
</html>
|
|
"""),
|
|
)
|
|
|
|
EXTENSIONS = (
|
|
"html",
|
|
"xhtml",
|
|
"xml",
|
|
"svg",
|
|
# Was not able to get server MIME type working properly :(
|
|
#"mml",
|
|
)
|
|
|
|
def __main__():
|
|
if len(sys.argv) > 1:
|
|
print "No arguments expected, aborting"
|
|
return
|
|
|
|
if not os.access(THIS_NAME, os.F_OK):
|
|
print "Must be run from the directory of " + THIS_NAME + ", aborting"
|
|
return
|
|
|
|
for name in os.listdir("."):
|
|
if name == THIS_NAME:
|
|
continue
|
|
os.remove(name)
|
|
|
|
manifest = open("MANIFEST", "w")
|
|
|
|
for name, contents in FILES:
|
|
for extension in EXTENSIONS:
|
|
f = open(name + "." + extension, "w")
|
|
f.write(contents)
|
|
f.close()
|
|
manifest.write("support " + name + "." + extension + "\n")
|
|
|
|
manifest.close()
|
|
|
|
__main__()
|