added scripts to cleanup spaces in XML files

example for remove_trailing_whitespaces.sh:

"  testing   \n" --> "  testing\n"

examples for remove_unnecessary_spaces.py:

"<testing>    foobar foobar" --> "<testing>foobar foobar"
"foobar foobar   </testing>" --> "foobar foobar</testing>"

Change-Id: Ie15a7a1491bf412ff893c84e76061ef623581145
This commit is contained in:
Christian Berendt 2013-08-15 11:38:31 +02:00
parent fd895f2655
commit de0d92c396
2 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,13 @@
#!/bin/sh
## copyright: B1 Systems GmbH <info@b1-systems.de>, 2013.
## author: Christian Berendt <berendt@b1-systems.de>, 2013.
## license: Apache License, Version 2.0
# Call ./tools/cleanup/remove_trailing_whitespaces.sh in the
# root of openstack-manuals.
files=$(find doc/src/docbkx -name *.xml -not -name pom.xml)
for file in $files; do
sed -i -e 's/[[:space:]]*$//' $file
done

View File

@ -0,0 +1,56 @@
#!/usr/bin/python
## copyright: B1 Systems GmbH <info@b1-systems.de>, 2013.
## author: Christian Berendt <berendt@b1-systems.de>, 2013.
## license: Apache License, Version 2.0
# Call ./tools/cleanup/remove_unnecessary_spaces.py in the
# root of openstack-manuals.
import os
import re
import tempfile
# should be the same like in tools/validate.py
FILE_EXCEPTIONS = ['ha-guide-docinfo.xml','bk001-ch003-associate-general.xml']
elements = [
'listitem',
'para',
'td',
'th',
'command',
'literal',
'title',
'caption',
'filename',
'userinput',
'programlisting'
]
checks = []
for element in elements:
checks.append(re.compile("(.*<%s>)\s+([\w\-().:!?{}\[\]]+.*\n)" % element)),
checks.append(re.compile("(.*[\w\-().:!?{}\[\]]+)\s+(<\/%s>.*\n)" % element))
for root, dirs, files in os.walk('doc/src/docbkx/'):
for f in files:
if (not (f.endswith('.xml') and
f != 'pom.xml' and
f not in FILE_EXCEPTIONS)):
continue
docfile = os.path.abspath(os.path.join(root, f))
tmpfile = tempfile.mkstemp()
tmpfd = os.fdopen(tmpfile[0], "w")
match = False
for line in open(docfile, 'r'):
for check in checks:
if check.match(line):
line = check.sub(r"\1\2", line)
match = True
tmpfd.write(line)
tmpfd.close()
if match:
os.rename(tmpfile[1], docfile)
else:
os.unlink(tmpfile[1])