cobiz / buildouts /developer.cfg
seawolf2357's picture
Add buildouts
41c16fb verified
[buildout]
extends = translator.cfg
components/jxml.cfg
components/xalan-j-2.7.2.cfg
develop+= pyhwp-tests
tools/xsltest
tools/gpl
parts+= test-core
test-coverage
test-cli
test-xsl
test-xsl-cov
test-sdist
test-tools
test-for-bisect
xsltest
code-analysis
collect-samples
masstest-failed
massfind-unknowntag
massfind-incomplete
expected-output-update
[pyhwp]
eggs+= nose
coverage
gpl
pyroma
[test-core]
recipe = collective.xmltestreport
eggs = pyhwp-tests
defaults = ['--auto-color', '--auto-progress', '--xml', '--tests-pattern=hwp5_tests']
[test-xsl]
recipe = collective.recipe.template
input = ${buildout:directory}/misc/test-xsl.in
output = ${buildout:directory}/bin/test-xsl
mode = 755
[test-xsl-cov]
recipe = collective.recipe.template
mode=755
output=${buildout:bin-directory}/test-xsl-cov
input =inline:
#!/bin/sh
CLASSPATH=${xalan-j-2.7.2:jars} ${jxml:location}/bin/jxml-cov-test $*
[test-coverage]
recipe = collective.recipe.template
input = ${buildout:directory}/misc/test-coverage
output = ${buildout:directory}/bin/test-coverage
mode = 755
[test-cli]
recipe = collective.recipe.template
input = ${buildout:directory}/misc/test-cli.in
output = ${buildout:directory}/bin/test-cli
mode = 755
[test-sdist]
recipe = collective.recipe.template
input = ${buildout:directory}/misc/test-sdist.in
output = ${buildout:directory}/bin/test-sdist
mode = 755
[test-tools]
recipe = collective.xmltestreport
eggs = gpl
defaults = ['--auto-color', '--auto-progress', '--xml']
[test-for-bisect]
recipe = collective.recipe.template
input = ${buildout:directory}/misc/test-for-bisect
output = ${buildout:directory}/bin/test-for-bisect
mode = 755
[xsltest]
recipe = zc.recipe.egg
eggs = xsltest
[code-analysis]
recipe = plone.recipe.codeanalysis
directory = ${buildout:directory}/pyhwp
# Default is 10
flake8-max-complexity = 30
utf8-header = True
[collect-samples]
recipe = collective.recipe.template
mode = 755
output = ${buildout:bin-directory}/${:_buildout_section_name_}
input =
inline:
#!/bin/sh
set -e
dir="$1"
find "$dir" -iname '*.hwp' -print0 | parallel --gnu -0 "${save-sample:output}"
[save-sample]
recipe = collective.recipe.template
mode = 755
output = ${buildout:bin-directory}/${:_buildout_section_name_}
input =
inline:
#!/bin/sh
set -e
src="$1"
[ -e "$src" ] || (echo "$src not found"; exit 1)
${:abspath}
version=$(${buildout:bin-directory}/hwp5proc version "$src")
srcpath=$(abspath "$src")
sha1sum=$(sha1sum -b "$srcpath" | awk '{ print $1 }')
echo "$version/$sha1sum $srcpath"
repo="${buildout:directory}/samples.local"
blob_dir="${buildout:directory}/samples.local/blob"
[ -d "$blob_dir" ] || mkdir -p "$blob_dir"
blob_path="$blob_dir/$sha1sum"
[ -e "$blob_path" ] || cp "$srcpath" "$blob_path"
dst_path="$repo/$version/$sha1sum.hwp"
dst_dir=$(dirname "$dst_path")
[ -d "$dst_dir" ] || mkdir -p "$dst_dir"
[ -e $dst_path ] || ln -s "$blob_path" "$dst_path"
abspath=
abspath() {
if [ $(echo "$1" | head -c 1) = "/" ]; then
echo "$1"
else
echo "$PWD/$1"
fi
}
[masstest-failed]
recipe = collective.recipe.template
mode = 755
output = ${buildout:bin-directory}/${:_buildout_section_name_}
input =
inline:
#!/bin/sh
set -e
${masstest:output} "${masstest-worker:failed-dir}"
[masstest]
recipe = collective.recipe.template
mode = 755
output = ${buildout:bin-directory}/${:_buildout_section_name_}
input =
inline:
#!/bin/sh
set -e
${:def-masstest}
sample_dir="${buildout:directory}/samples.local/"
[ -z "$1" ] || sample_dir="$1"
masstest "$sample_dir" | tee ${buildout:parts-directory}/masstest.log
def-masstest=
masstest() {
find "$1" -iname '*.hwp' -print0 | parallel --gnu -0 ${masstest-worker:output}
}
[masstest-worker]
recipe = collective.recipe.template
mode = 755
output = ${buildout:bin-directory}/${:_buildout_section_name_}
input =
inline:
#!/bin/sh
set -e
[ -e "$1" ] || (echo "$1: not found"; exit 1)
testee="$1"
failed_dir="${:failed-dir}"
[ -d "$failed_dir" ] || mkdir -p "$failed_dir"
errors_dir="${:errors-dir}"
[ -d "$errors_dir" ] || mkdir -p "$errors_dir"
testee_filename=$(basename "$testee")
testee_error_hwp5proc="$errors_dir/$testee_filename.hwp5proc.err"
testee_error_xmllint="$errors_dir/$testee_filename.xmllint.err"
test_xml() {
${buildout:bin-directory}/hwp5proc xml "$testee" 2> "$testee_error_hwp5proc" | xmllint --format - > /dev/null 2> "$testee_error_xmllint"
}
handle_success() {
echo ""
filename=$(basename "$testee")
failed_path="$failed_dir/$filename"
[ ! -e "$failed_path" ] || rm -f "$failed_path"
rm -f "$testee_error_hwp5proc"
rm -f "$testee_error_xmllint"
}
handle_failed() {
echo " FAILED"
[ -e "$failed_path" ] || ln -s "$testee" "$failed_dir"
}
echo -n "$testee"
test_xml && handle_success || handle_failed
failed-dir=${buildout:parts-directory}/masstest/failed
errors-dir=${buildout:parts-directory}/masstest/errors
[massfind-unknowntag]
recipe = collective.recipe.template
output = ${buildout:bin-directory}/${:_buildout_section_name_}
mode = 755
input =
inline:
#!/bin/sh
set -e
samples='${buildout:directory}/samples.local'
find "$samples/" -iname '*.hwp' | parallel --gnu ${buildout:bin-directory}/hwp5proc find --model=UnknownTagModel | tee ${buildout:parts-directory}/massfind-unknowntag
[massfind-incomplete]
recipe = collective.recipe.template
output = ${buildout:bin-directory}/${:_buildout_section_name_}
mode = 755
input =
inline:
#!/bin/sh
set -e
samples='${buildout:directory}/samples.local'
find "$samples/" -iname '*.hwp' | parallel --gnu ${buildout:bin-directory}/hwp5proc find --incomplete | tee ${buildout:parts-directory}/massfind-incomplete
[expected-output-update]
recipe = collective.recipe.template
output = ${buildout:bin-directory}/${:_buildout_section_name_}
mode = 755
input =
inline:
#!/bin/sh
set -e
samples='${buildout:directory}/samples'
find "$samples/" -iname '*.hwp' | parallel --gnu ${expected-output-update-worker:output}
[expected-output-update-worker]
recipe = collective.recipe.template
output = ${buildout:bin-directory}/${:_buildout_section_name_}
mode = 755
input =
inline:
#!/bin/sh
set -e
filename=$1
docinfo="$filename.docinfo.json"
section0="$filename.bodytext.section0.json"
xmlformat="$filename.formatted.xml"
odt_output="$filename.odt"
odt_filename=`basename "$odt_output"`
hwp5proc_xml() {
${buildout:bin-directory}/hwp5proc xml "$1" 2> "$xmlformat.err"
}
hwp5odt() {
local orgdir="$PWD"
local filename=`basename "$1"`
local odt_file=`echo $filename | sed -e "s/.hwp$/.odt/g"`
cd `dirname "$1"`
${buildout:bin-directory}/hwp5odt "$filename"
rm -rf "$odt_file.d"
mkdir "$odt_file.d"
unzip "$odt_file" -d "$odt_file.d"
rm -f "$odt_file"
cd "$orgdir"
}
hwp5html() {
local html_dir=`echo $1 | sed -e "s/.hwp$/.html.d/g"`
rm -rf "$html_dir"
${buildout:bin-directory}/hwp5html "$1" --output "$html_dir"
xmllint --c14n --nonet --encode utf-8 "$html_dir/index.xhtml" | xmllint --format --encode utf-8 - > "$html_dir/index.formatted.xhtml"
}
xml_c14n() {
xmllint --c14n --encode utf-8 - 2> "$xmlformat.c14n.err"
}
xml_format() {
xmllint --format --encode utf-8 - 2> "$xmlformat.format.err"
}
if ${buildout:bin-directory}/hwp5proc header "$filename" | grep password | grep 0 > /dev/null; then
dummy=''
else
echo "$filename: SKIPPING"
rm -f "$docinfo.err"
rm -f "$section0.err"
rm -f "$xmlformat.err"
rm -f "$xmlformat.c14n.err"
rm -f "$xmlformat.format.err"
exit 0
fi
${buildout:bin-directory}/hwp5proc models "$filename" docinfo > "$docinfo" 2> "$docinfo.err" && echo "$filename: docinfo" && rm -f "$docinfo.err"
${buildout:bin-directory}/hwp5proc models "$filename" bodytext/0 > "$section0" 2> "$section0.err" && echo "$filename: bodytext/0" && rm -f "$section0.err"
hwp5proc_xml "$filename" | xml_c14n | xml_format > "$xmlformat" && echo "$filename: xml" && rm -f "$xmlformat.err" "$xmlformat.c14n.err" "$xmlformat.format.err"
hwp5odt "$filename"
hwp5html "$filename"