Mercurial > dottes
annotate makeWeb.sh @ 361:265539086836 build-default-159
Automated merge with ssh://hg.cryhavoc.org.uk/dottes
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Wed, 21 Aug 2013 10:32:59 +0100 |
parents | b233893b4c51 01ded8741361 |
children | 5628fcd6c692 |
rev | line source |
---|---|
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
1 #!/bin/bash |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
2 # |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
3 # Build the website. The common items and the web items are assumed |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
4 # to be already built. |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
5 # |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
6 |
238
8bea9fdeba40
Revert tracing change than slipped into the archive.
Jim Hague <jim.hague@laicatc.com>
parents:
237
diff
changeset
|
7 #set -x |
229 | 8 |
9 # Restore titles like 'Exploding Potato, The' to the | |
10 # expected 'The Exploding Potato'. | |
11 fixtitle() | |
12 { | |
13 retval=`echo "$1" | sed -e "s/\(.*\), *\(.*\)/\2 \1/"` | |
14 } | |
15 | |
223
0ef955669a9a
Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents:
217
diff
changeset
|
16 if [ $# -lt 2 -o $# -gt 3 ]; then |
0ef955669a9a
Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents:
217
diff
changeset
|
17 echo "Usage: makeWeb.sh <book dir name> <master book dir name> [<instrument name>]" |
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
18 exit 1 |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
19 fi |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
20 |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
21 dir=`pwd` |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
22 |
197
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
23 bookedir=$dir/$1 |
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
24 webdir=$dir/web/$1 |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
25 graphicsdir=$dir/graphics/$1 |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
26 output=index.html |
360
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
27 tunelist=tunelist.html |
197
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
28 booke=$1 |
223
0ef955669a9a
Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents:
217
diff
changeset
|
29 masterbooke=$2 |
0ef955669a9a
Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents:
217
diff
changeset
|
30 title=$booke |
0ef955669a9a
Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents:
217
diff
changeset
|
31 instrument=$3 |
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
32 |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
33 buildno=`cat buildno.txt` |
309
07e9fa311c6f
% added to buildno.txt needs to be removed for web.
Jim Hague <jim.hague@acm.org>
parents:
238
diff
changeset
|
34 # Remove trailing % added for Latex purposes. |
07e9fa311c6f
% added to buildno.txt needs to be removed for web.
Jim Hague <jim.hague@acm.org>
parents:
238
diff
changeset
|
35 buildno=${buildno%%%} |
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
36 subtitle= |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
37 intro= |
197
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
38 if [ -r $bookedir/subtitle.txt ]; then |
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
39 subtitle=`cat $bookedir/subtitle.txt` |
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
40 fi |
197
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
41 |
223
0ef955669a9a
Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents:
217
diff
changeset
|
42 if [ -n "$instrument" ]; then |
0ef955669a9a
Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents:
217
diff
changeset
|
43 title="${title} ($instrument)" |
0ef955669a9a
Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents:
217
diff
changeset
|
44 subtitle="${subtitle} ($instrument)" |
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
45 fi |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
46 |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
47 mkdir -p $webdir |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
48 |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
49 sed -e "s/@BUILD@/$buildno/" -e "s/@SUBTITLE@/$subtitle/" \ |
360
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
50 -e "s/@TITLE@/$title/" -e "s/@BOOK@/$booke/" dottes.html > $webdir/$output |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
51 |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
52 # Mark output as executable so it is scanned for server-side includes. |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
53 chmod +x $webdir/$output |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
54 |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
55 for item in intro |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
56 do |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
57 rm -f $webdir/$item.html |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
58 if [ -r $booke/$item.txt ]; then |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
59 txt2tags --no-headers --target=html --outfile=$webdir/$item.html $booke/$item.txt |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
60 else |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
61 touch $webdir/$item.html |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
62 fi |
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
63 done |
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
64 |
197
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
65 # Copy in the book PDFs. Like the graphics, Midi etc. these are assumed |
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
66 # to be already generated. |
199
b8d18ccdc6e4
Fix up typo from last commit of this file.
Jim Hague <jim.hague@acm.org>
parents:
197
diff
changeset
|
67 cp $1-*.pdf $webdir |
45
689026e2de0c
Web. Add download links for book.
Jim Hague <jim.hague@laicatc.com>
parents:
43
diff
changeset
|
68 |
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
69 # Now, for each tune, make the tune graphic and sound. |
197
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
70 find $bookedir -name "*.abc" | sort | |
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
71 while read filename |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
72 do |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
73 name=`basename $filename .abc` |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
74 |
229 | 75 title=`$dir/abcfield.py --field T --html $filename` |
76 fixtitle "$title" | |
77 title=$retval | |
319
cbe9c10b5a3e
Render tune title, subtitle and composer in Latex/HTML and not in the image.
Jim Hague <jim.hague@acm.org>
parents:
309
diff
changeset
|
78 subtitle=`$dir/abcfield.py --index 2 --field T --latex $filename` |
cbe9c10b5a3e
Render tune title, subtitle and composer in Latex/HTML and not in the image.
Jim Hague <jim.hague@acm.org>
parents:
309
diff
changeset
|
79 composer=`$dir/abcfield.py --field C --latex $filename` |
326
27f29e8aafea
Add --contains flag to abcfield.py.
Jim Hague <jim.hague@acm.org>
parents:
321
diff
changeset
|
80 changefile=`$dir/abcfield.py --field N --contains "Change:" $filename | sed -e "s/Change: *//"` |
229 | 81 changetitle="" |
82 changevisibility="no" | |
83 if [ -n "$changefile" ]; then | |
84 changetitle=`$dir/abcfield.py --field T --html $bookedir/$changefile` | |
85 changevisibility="yes" | |
86 | |
87 fixtitle "$changetitle" | |
88 changetitle=$retval | |
89 fi | |
326
27f29e8aafea
Add --contains flag to abcfield.py.
Jim Hague <jim.hague@acm.org>
parents:
321
diff
changeset
|
90 credit=`$dir/abcfield.py --field N --contains "Credit:" $filename | sed -e "s/Credit: *//"` |
27f29e8aafea
Add --contains flag to abcfield.py.
Jim Hague <jim.hague@acm.org>
parents:
321
diff
changeset
|
91 creditvisibility="no" |
27f29e8aafea
Add --contains flag to abcfield.py.
Jim Hague <jim.hague@acm.org>
parents:
321
diff
changeset
|
92 if [ -n "$credit" ]; then |
27f29e8aafea
Add --contains flag to abcfield.py.
Jim Hague <jim.hague@acm.org>
parents:
321
diff
changeset
|
93 creditvisibility="yes" |
27f29e8aafea
Add --contains flag to abcfield.py.
Jim Hague <jim.hague@acm.org>
parents:
321
diff
changeset
|
94 fi |
355
b233893b4c51
Add date of last change to bottom of web tune page.
Jim Hague <jim.hague@acm.org>
parents:
326
diff
changeset
|
95 lastchanged=`hg log --limit 1 --template "{date|shortdate}" $filename` |
212
9502f4883006
When listing titles for web, straighten out ones of the form 'Something, The'.
Jim Hague <jim.hague@laicatc.com>
parents:
202
diff
changeset
|
96 |
321
b61c39beac5f
Generate different tune PDF for web site download.
Jim Hague <jim.hague@acm.org>
parents:
319
diff
changeset
|
97 # Copy the ABC into the web. |
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
98 cp $filename $webdir |
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
99 |
197
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
100 # Generate the tune web page. |
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
101 tunepage=${name}.html |
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
102 |
223
0ef955669a9a
Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents:
217
diff
changeset
|
103 # If the title contains HTML character entities, escape |
0ef955669a9a
Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents:
217
diff
changeset
|
104 # initial '&' in the title - it means things to sed. |
202
540511b14c73
Handle '&' appearing in HTML output from tune titles.
Jim Hague <jim.hague@acm.org>
parents:
199
diff
changeset
|
105 sed -e "s/@TITLE@/${title//&/\&}/" \ |
319
cbe9c10b5a3e
Render tune title, subtitle and composer in Latex/HTML and not in the image.
Jim Hague <jim.hague@acm.org>
parents:
309
diff
changeset
|
106 -e "s/@SUBTITLE@/${subtitle}/" \ |
cbe9c10b5a3e
Render tune title, subtitle and composer in Latex/HTML and not in the image.
Jim Hague <jim.hague@acm.org>
parents:
309
diff
changeset
|
107 -e "s/@COMPOSER@/${composer}/" \ |
223
0ef955669a9a
Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents:
217
diff
changeset
|
108 -e "s/@MASTERBOOKE@/${masterbooke}/" \ |
229 | 109 -e "s/@CHANGETITLE@/${changetitle//&/\&}/" \ |
110 -e "s/@CHANGETUNE@/${changefile/.abc/.html}/" \ | |
111 -e "s/@CHANGEVISIBILITY@/${changevisibility}/" \ | |
326
27f29e8aafea
Add --contains flag to abcfield.py.
Jim Hague <jim.hague@acm.org>
parents:
321
diff
changeset
|
112 -e "s/@CREDIT@/${credit}/" \ |
27f29e8aafea
Add --contains flag to abcfield.py.
Jim Hague <jim.hague@acm.org>
parents:
321
diff
changeset
|
113 -e "s/@CREDITVISIBILITY@/${creditvisibility}/" \ |
355
b233893b4c51
Add date of last change to bottom of web tune page.
Jim Hague <jim.hague@acm.org>
parents:
326
diff
changeset
|
114 -e "s/@LASTCHANGED@/${lastchanged}/" \ |
197
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
115 -e "s/@TUNE@/${name}/" dottes.html.tune > $webdir/$tunepage |
8f352063f277
Finish first version of newly tarted up website.
Jim Hague <jim.hague@acm.org>
parents:
191
diff
changeset
|
116 |
202
540511b14c73
Handle '&' appearing in HTML output from tune titles.
Jim Hague <jim.hague@acm.org>
parents:
199
diff
changeset
|
117 sed -e "s/@TITLE@/${title//&/\&}/" \ |
360
01ded8741361
Use server-side includes (with Apache XBitHack setting) in web.
Jim Hague <jim.hague@acm.org>
parents:
359
diff
changeset
|
118 -e "s/@TUNE@/${name}/" dottes.html.tuneindex >> $webdir/$tunelist |
43
d92717f8130c
First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff
changeset
|
119 done |