#/*******************************************************************************
# * Copyright (c) 2010 Eclipse Foundation and others.
# * All rights reserved. This program and the accompanying materials
# * are made available under the terms of the Eclipse Public License v1.0
# * which accompanies this distribution, and is available at
# * http://www.eclipse.org/legal/epl-v10.html
# *
# * Contributors:
# *    Wayne Beaton (Eclipse Foundation)- initial API and implementation
# *******************************************************************************/
# This script generates a diff between the 2008 and 2010 versions of the development process
#

# This regexp isn't perfect. It does an adequate job, however, of matching and
# removing the PHP tags from the files.
removephp='s/<?[^\?]*?>//g'
cat development_process_2008.php | tr '\n' ' ' | sed $removephp | tidy -wrap 72 --tidy-mark false | sed -e 's/<[^>]*>//g' > /tmp/2008.html
cat development_process_2010.php | tr '\n' ' ' | sed $removephp | tidy -wrap 72 --tidy-mark false | sed -e 's/<[^>]*>//g' > /tmp/2010.html
diff -y -W 150 /tmp/2008.html /tmp/2010.html > development_process_2010_diff.txt

# Generate a PDF
cat development_process_2010.php | tr '\n' ' ' \
	| sed 's/<?[^\?]*?>//g' | perl -pe  's|<div class="comment">.*?<\/div>||g' \
	| perl -pe  's|<div id="rightcolumn">.*?<\/div>\s*<\/div>||g' | tidy -wrap 72 --tidy-mark false \
	| htmldoc --book --no-title --no-toc -t pdf11 - > development_process_2010.pdf
