/[d-i]/trunk/manual/scripts/merge_xml
ViewVC logotype

Contents of /trunk/manual/scripts/merge_xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 31246 - (show annotations) (download)
Fri Oct 7 22:29:26 2005 UTC (7 years, 8 months ago) by fjp
File size: 2268 byte(s)
Create WORKDIR if it doesn't exist yet
1 #!/bin/bash
2
3 # This script is used for translations using .po files.
4 # It merges .xml files per chapter (or appendix).
5 # The reason files are merged is that individual .xml files
6 # are often not well-formed xml.
7
8 if [ "$1" = "--help" ]; then
9 echo "Usage: $0 lang"
10 exit 0
11 fi
12
13 language=${1:-pl}
14
15 SCRIPTDIR="./scripts"
16 BUILDDIR="./build"
17
18 LANGDIR="./$language"
19 [ -d $LANGDIR ] || exit 1
20
21 if [ -z "$PO_USEBUILD" ] ; then
22 WORKDIR="./integrated"
23 else
24 WORKDIR="$BUILDDIR/build.po"
25 fi
26 [ -d $WORKDIR ] || mkdir -p $WORKDIR
27
28 TEMPDIR=/tmp/merge_xml.$$
29 LOG=$TEMPDIR/merge_xml.$language.log
30 [ -d $TEMPDIR ] || mkdir $TEMPDIR
31
32 #<!ENTITY bookinfo.xml SYSTEM "en/bookinfo.xml">
33 OLD_IFS=$IFS
34 IFS="
35 "
36 :>$TEMPDIR/entlist
37 echo "Building list of entities..."
38 for ENT in `grep "<!ENTITY" $BUILDDIR/templates/docstruct.ent` ; do
39 echo -n "$(echo $ENT | sed "s/.*ENTITY\ *//" | sed "s/\ *SYSTEM.*$//")" >>$TEMPDIR/entlist
40 echo -n ":" >>$TEMPDIR/entlist
41 echo "$(echo $ENT | sed "s/.*SYSTEM\ *\"##SRCPATH##\///" | sed "s/\">//")" >>$TEMPDIR/entlist
42
43 done
44 IFS=$OLD_IFS
45
46 # Make sure that all files are in UTF-8 first
47 echo "Converting XML files to UTF-8..."
48 echo "Converting XML files to UTF-8..." >>$LOG
49 for FILE in `find $LANGDIR -name "*.xml"` ; do
50 SUBDIR=$(dirname $FILE | sed "s:$LANGDIR::");
51 XML=$(basename $FILE)
52 mkdir -p $TEMPDIR/in/$SUBDIR
53 REGEXP="^<?.*encoding="
54 if egrep -q $REGEXP $FILE ; then
55 echo "Encoded : $FILE" >>$LOG
56 ENC=$(egrep $REGEXP $FILE | sed "s/.*xml.*encoding=\"//" | sed "s/\"?>//")
57 iconv -f $ENC -t utf-8 $FILE | egrep -v $REGEXP >$TEMPDIR/in/$SUBDIR/$XML
58 else
59 echo "Not encoded: $FILE" >>$LOG
60 cp $FILE $TEMPDIR/in/$SUBDIR/$XML
61 fi
62 done
63 echo "" >>$LOG
64
65 # Include lower level xml-files for all the main level xml-files
66 echo "Merging XML files per 'chapter'..."
67 echo "Merging XML files per 'chapter'..." >>$LOG
68 gawk -v WORKDIR="$TEMPDIR" -v LOG=$LOG -v ENTLIST="$TEMPDIR/entlist" \
69 -f $SCRIPTDIR/merge_xml.awk $BUILDDIR/templates/install.xml.template
70
71 # Copy the results to their proper location
72 TARGET="$WORKDIR/$language"
73 if [ -d $TARGET ]; then
74 rm -r $TARGET
75 fi
76 mkdir -p $TARGET
77 cp -r $TEMPDIR/out/* $TARGET
78 cp $LOG $TARGET
79
80 rm -r $TEMPDIR
81 exit 0

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.5