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.06 |
2 | |
21 | |
3 | umask 022 |
22 | umask 022 |
4 | |
23 | |
5 | PATH=/root/src/crossfire:$PATH |
24 | SRC=/root/src/crossfire |
|
|
25 | PATH="$SRC:$PATH" |
6 | BASE=/var/www/cfmaps.schmorp.de |
26 | BASE="/var/www/cfmaps.schmorp.de" |
7 | export CROSSFIRE_LIBDIR=$BASE/lib |
27 | export CROSSFIRE_LIBDIR="$BASE"/lib |
8 | |
28 | |
9 | cd "$BASE" || exit 69 |
29 | cd "$BASE" || exit 69 |
10 | |
30 | |
11 | cvs -Q -z3 update -AdP | grep -v ^\\? |
31 | cvs -Q -z3 update -AdP | grep -v ^\\? |
12 | |
32 | |
13 | chown -R root.root . |
33 | rm -f .cfmap2html |
14 | chmod -R u=rwX,go=rX . |
|
|
15 | |
34 | |
16 | rm -f .cfmap2html |
35 | chmod 644 "$SRC"/*.css |
|
|
36 | cp "$SRC"/*.css . |
17 | |
37 | |
18 | find . -name CVS -prune -o -type d -printf "%P/\n" | while read dir; do |
38 | find . -name CVS -prune -o -type d -printf "%P/\n" | while read dir; do |
19 | ( |
39 | ( |
20 | export dir |
40 | export dir |
21 | cd "./$dir" || exit 68 |
41 | cd "./$dir" || exit 68 |
22 | { |
42 | { |
23 | echo "<html><head><title>$dir</title></head><body><ul>" >&7 |
43 | cat >&7 <<-EOF |
24 | echo "<li><a href='..'><parent></a></li>" >&7 |
44 | <?xml version='1.0' encoding='utf-8'?> |
|
|
45 | <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'> |
|
|
46 | <head> |
|
|
47 | <title>Crossfire Maps Directory "$dir"</title> |
|
|
48 | <link rel='stylesheet' type='text/css' media='all' href='/common.css'/> |
|
|
49 | </head> |
|
|
50 | <body><h1>Crossfire Maps Directory "$dir"</h1><ul> |
|
|
51 | <li><a href='..'><parent></a></li></ul><h2>This Directory</h2><ul> |
|
|
52 | EOF |
25 | for file in *; do |
53 | for file in *; do |
26 | if [ -f "$file" ]; then |
54 | if [ -f "$file" ]; then |
27 | case "$file" in |
55 | case "$file" in |
28 | *.pst | *.jpg | *.png | *.html | *.html.gz | *~ ) |
56 | *.pst | *.jpg | *.png | *.html | *.html.gz | *.xhtml | *.xhtml.gz | *.css | *~ ) |
29 | ;; |
57 | ;; |
30 | * ) |
58 | * ) |
31 | if head -5 "$file" | grep -q "^arch map"; then |
59 | if head -5 "$file" | grep -q "^arch map"; then |
32 | echo "<li><a href='$file.html'>$file</a> [map]</li>" >&7 |
60 | echo >&7 "<li><a href='$file.xhtml'>$file</a> [map]</li>" |
33 | DIR="${dir#/}" |
61 | DIR="${dir#/}" |
34 | echo "$DIR$file" >>$BASE/.cfmap2html |
62 | echo "$DIR$file" >>$BASE/.cfmap2html |
35 | else |
63 | else |
36 | echo "<li><a href='$file'>$file</a> [file]</li>" >&7 |
64 | echo >&7 "<li><a href='$file'>$file</a> [file]</li>" |
37 | fi |
65 | fi |
38 | ;; |
66 | ;; |
39 | esac |
67 | esac |
40 | elif [ -d "$file" ]; then |
68 | elif [ -d "$file" ]; then |
41 | case "$file" in |
69 | case "$file" in |
42 | CVS ) |
70 | CVS ) |
43 | ;; |
71 | ;; |
44 | * ) |
72 | * ) |
45 | echo "<li><a href='$file/'>$file/</a> [dir]</li>" >&7 |
73 | echo >&7 "<li><a href='$file/'>$file/</a> [dir]</li>" |
46 | ;; |
74 | ;; |
47 | esac |
75 | esac |
48 | fi |
76 | fi |
49 | done |
77 | done |
|
|
78 | echo >&7 "</ul>" |
|
|
79 | cat >&7 <<-EOF |
|
|
80 | <h2>Bookmarks</h2> |
|
|
81 | <ul> |
|
|
82 | <li><a href="/world/">Worldmap</a></li> |
|
|
83 | <li><a href="/world/world_105_115.xhtml">Scorn</a></li> |
|
|
84 | <li><a href="/world/world_102_108.xhtml">Santo Dominion</a></li> |
|
|
85 | <li><a href="/world/world_107_123.xhtml">Brest</a></li> |
|
|
86 | <li><a href="/world/world_109_126.xhtml">Lake Country</a></li> |
|
|
87 | <li><a href="/world/world_122_117.xhtml">Navar</a></li> |
|
|
88 | <li><a href="/world/world_116_102.xhtml">Darcap</a></li> |
|
|
89 | <li><a href="/world/world_128_109.xhtml">Wolfsburg</a></li> |
|
|
90 | <li><a href="/world/world_128_101.xhtml">Azumauindo</a></li> |
|
|
91 | </ul> |
|
|
92 | <p class="footer">created by <a href='http://software.schmorp.de/#crossfire'>cfupdate</a> version $VERSION</p> |
|
|
93 | EOF |
50 | echo "</ul></body></html>" >&7 |
94 | echo >&7 "</body></html>" |
51 | } 7>index.html |
95 | } 7>index.xhtml |
|
|
96 | gzip -7f index.xhtml |
52 | ) |
97 | ) |
53 | done |
98 | done |
54 | |
99 | |
55 | <.cfmap2html xargs cfmap2html |
100 | <.cfmap2html xargs cfmap2html |
56 | rm -f .cfmap2html |
101 | rm -f .cfmap2html |
57 | |
102 | |
58 | cfarch2html |
103 | cfarch2html |
|
|
104 | cfworldmap |
59 | |
105 | |
|
|
106 | chown -R root.root . |
|
|
107 | chmod -R u=rwX,go=rX . |
|
|
108 | |