1 | #!/bin/bash |
1 | #!/bin/bash |
|
|
2 | |
|
|
3 | # cfupdate - convert a crossfire maps hierarchy to html |
|
|
4 | # Copyright (C) 2005 Marc Lehmann <gvpe@schmorp.de> |
|
|
5 | # |
|
|
6 | # CFUPDATE is free software; you can redistribute it and/or modify |
|
|
7 | # it under the terms of the GNU General Public License as published by |
|
|
8 | # the Free Software Foundation; either version 2 of the License, or |
|
|
9 | # (at your option) any later version. |
|
|
10 | # |
|
|
11 | # This program is distributed in the hope that it will be useful, |
|
|
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
14 | # GNU General Public License for more details. |
|
|
15 | # |
|
|
16 | # You should have received a copy of the GNU General Public License |
|
|
17 | # along with gvpe; if not, write to the Free Software |
|
|
18 | # Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
|
19 | |
|
|
20 | VERSION=1.04 |
2 | |
21 | |
3 | umask 022 |
22 | umask 022 |
4 | |
23 | |
5 | PATH=/root/src/crossfire:$PATH |
24 | PATH=/root/src/crossfire:$PATH |
6 | BASE=/var/www/cfmaps.schmorp.de |
25 | BASE=/var/www/cfmaps.schmorp.de |
7 | export CROSSFIRE_LIBDIR=$BASE/lib |
26 | export CROSSFIRE_LIBDIR=$BASE/lib |
8 | |
27 | |
9 | cd "$BASE" || exit 69 |
28 | cd "$BASE" || exit 69 |
10 | |
|
|
11 | VERSION=1.0 |
|
|
12 | |
29 | |
13 | cvs -Q -z3 update -AdP | grep -v ^\\? |
30 | cvs -Q -z3 update -AdP | grep -v ^\\? |
14 | |
31 | |
15 | rm -f .cfmap2html |
32 | rm -f .cfmap2html |
16 | |
33 | |
17 | find . -name CVS -prune -o -type d -printf "%P/\n" | while read dir; do |
34 | find . -name CVS -prune -o -type d -printf "%P/\n" | while read dir; do |
18 | ( |
35 | ( |
19 | export dir |
36 | export dir |
20 | cd "./$dir" || exit 68 |
37 | cd "./$dir" || exit 68 |
21 | { |
38 | { |
|
|
39 | echo >&7 "<?xml version='1.0' encoding='utf-8'?>" |
|
|
40 | echo >&7 "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">" |
|
|
41 | echo >&7 "<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>" |
22 | echo "<html><head><title>Crossfire Maps: $dir</title></head><body><h1>Crossfire Maps $dir</h1><h2>This Directory</h2><ul>" >&7 |
42 | echo >&7 "<head><title>Crossfire Maps Directory \"$dir\"</title></head><body><h1>Crossfire Maps Directory \"$dir\"</h1><ul>" |
23 | echo "<li><a href='..'><parent></a></li>" >&7 |
43 | echo >&7 "<li><a href='..'><parent></a></li></ul><h2>This Directory</h2><ul>" |
24 | for file in *; do |
44 | for file in *; do |
25 | if [ -f "$file" ]; then |
45 | if [ -f "$file" ]; then |
26 | case "$file" in |
46 | case "$file" in |
27 | *.pst | *.jpg | *.png | *.html | *.html.gz | *~ ) |
47 | *.pst | *.jpg | *.png | *.html | *.html.gz | *.xhtml | *.xhtml.gz | *~ ) |
28 | ;; |
48 | ;; |
29 | * ) |
49 | * ) |
30 | if head -5 "$file" | grep -q "^arch map"; then |
50 | if head -5 "$file" | grep -q "^arch map"; then |
31 | echo "<li><a href='$file.html'>$file</a> [map]</li>" >&7 |
51 | echo >&7 "<li><a href='$file.xhtml'>$file</a> [map]</li>" |
32 | DIR="${dir#/}" |
52 | DIR="${dir#/}" |
33 | echo "$DIR$file" >>$BASE/.cfmap2html |
53 | echo "$DIR$file" >>$BASE/.cfmap2html |
34 | else |
54 | else |
35 | echo "<li><a href='$file'>$file</a> [file]</li>" >&7 |
55 | echo >&7 "<li><a href='$file'>$file</a> [file]</li>" |
36 | fi |
56 | fi |
37 | ;; |
57 | ;; |
38 | esac |
58 | esac |
39 | elif [ -d "$file" ]; then |
59 | elif [ -d "$file" ]; then |
40 | case "$file" in |
60 | case "$file" in |
41 | CVS ) |
61 | CVS ) |
42 | ;; |
62 | ;; |
43 | * ) |
63 | * ) |
44 | echo "<li><a href='$file/'>$file/</a> [dir]</li>" >&7 |
64 | echo >&7 "<li><a href='$file/'>$file/</a> [dir]</li>" |
45 | ;; |
65 | ;; |
46 | esac |
66 | esac |
47 | fi |
67 | fi |
48 | done |
68 | done |
49 | echo "</ul>" >&7 |
69 | echo >&7 "</ul>" |
50 | cat <<EOF >&7 |
70 | cat >&7 <<EOF |
51 | <h2>Bookmarks</h2> |
71 | <h2>Bookmarks</h2> |
52 | <ul> |
72 | <ul> |
53 | <li><a href="/world/">Worldmap</a></li> |
73 | <li><a href="/world/">Worldmap</a></li> |
54 | <li><a href="/world/world_105_115.html">Scorn</a></li> |
74 | <li><a href="/world/world_105_115.xhtml">Scorn</a></li> |
55 | <li><a href="/world/world_102_108.html">Santo Dominion</a></li> |
75 | <li><a href="/world/world_102_108.xhtml">Santo Dominion</a></li> |
56 | <li><a href="/world/world_107_123.html">Brest</a></li> |
76 | <li><a href="/world/world_107_123.xhtml">Brest</a></li> |
57 | <li><a href="/world/world_109_126.html">Lake Country</a></li> |
77 | <li><a href="/world/world_109_126.xhtml">Lake Country</a></li> |
58 | <li><a href="/world/world_122_117.html">Navar</a></li> |
78 | <li><a href="/world/world_122_117.xhtml">Navar</a></li> |
59 | <li><a href="/world/world_116_102.html">Darcap</a></li> |
79 | <li><a href="/world/world_116_102.xhtml">Darcap</a></li> |
60 | <li><a href="/world/world_128_109.html">Wolfsburg</a></li> |
80 | <li><a href="/world/world_128_109.xhtml">Wolfsburg</a></li> |
61 | <li><a href="/world/world_128_101.html">Azumauindo</a></li> |
81 | <li><a href="/world/world_128_101.xhtml">Azumauindo</a></li> |
62 | </ul> |
82 | </ul> |
63 | <hr /> |
83 | <hr /> |
64 | <p style='font-size: 8pt;'>created by <b>update</b> version $VERSION</p> |
84 | <p style='font-size: 8pt;'>created by <a href='http://software.schmorp.de/#crossfire'>cfupdate</a> version $VERSION</p> |
65 | EOF |
85 | EOF |
66 | echo "</body></html>" >&7 |
86 | echo >&7 "</body></html>" |
67 | } 7>index.html |
87 | } 7>index.xhtml |
|
|
88 | gzip -7f index.xhtml |
68 | ) |
89 | ) |
69 | done |
90 | done |
70 | |
91 | |
71 | <.cfmap2html xargs cfmap2html |
92 | <.cfmap2html xargs cfmap2html |
72 | rm -f .cfmap2html |
93 | rm -f .cfmap2html |