CVSROOT: /web/www Module name: www Changes by: Karl Berry <karl> 11/02/01 19:22:39
Added files: server : include-file-list.txt server/source : gen-include-file-list Log message: list of (ssi) files not to localize with multiviews CVSWeb URLs: http://web.cvs.savannah.gnu.org/viewcvs/www/server/include-file-list.txt?cvsroot=www&rev=1.1 http://web.cvs.savannah.gnu.org/viewcvs/www/server/source/gen-include-file-list?cvsroot=www&rev=1.1 Patches: Index: include-file-list.txt =================================================================== RCS file: include-file-list.txt diff -N include-file-list.txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ include-file-list.txt 1 Feb 2011 19:21:59 -0000 1.1 @@ -0,0 +1,17 @@ +/graphics/allgnupkgs /graphics/allgnupkgs.en +/manual/allgnupkgs /manual/allgnupkgs.en +/server/banner /server/banner.en +/server/body-include-1 /server/body-include-1.en +/server/body-include-2 /server/body-include-2.en +/server/footer /server/footer.en +/server/footer-min /server/footer-min.en +/server/footer-short /server/footer-short.en +/server/footer-text /server/footer-text.en +/server/head-include-1 /server/head-include-1.en +/server/head-include-2 /server/head-include-2.en +/server/header /server/header.en +/server/sidebar-bottom-half /server/sidebar-bottom-half.en +/server/sidebar-fsf-support /server/sidebar-fsf-support.en +/server/sidebar-stay /server/sidebar-stay.en +/server/sidebar-top-half /server/sidebar-top-half.en +/software/allgnupkgs /software/allgnupkgs.en Index: source/gen-include-file-list =================================================================== RCS file: source/gen-include-file-list diff -N source/gen-include-file-list --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ source/gen-include-file-list 1 Feb 2011 19:22:25 -0000 1.1 @@ -0,0 +1,47 @@ +#!/bin/sh +# $Id: gen-include-file-list,v 1.1 2011/02/01 19:22:25 karl Exp $ +# Copyright 2011 Free Software Foundation, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. +# +# This is run from karl@fencepost cron. +# +# The idea is to generate a list of the SSI fragments included in other +# pages. We don't want Apache to localize those with MultiViews, since +# the translations (e.g., provide.de.html) already include the +# appropriate localized version (e.g., /server/header.de.html). +# +# Originally written by Ineiev. + +# Root of hierarchy to search, the main web directory by default. +webroot=${1-`cd ../.. && pwd`} + +# Look for ssi statements in .html and .shtml, nothing else. +find $webroot -type f \( -name \*.html -o -name \*.shtml \) \ +| while read i; do + + # In each file, look for SSI virtual includes like this: + # <!--#include virtual="/server/header.html" --> + # and extract just the path (/server/header), no .html. + # + # Then filter out the localized versions of those include files, + # such as header.de.html and header.pt-br.html. + + sed -n 's/^.*#include virtual="\([^"]*\)\.html".*$/\1/p' $i \ + | grep -v "\...\(-..\)\?" + done \ +| sort -u \ +| sed "s/\(.*\)/\1 \1.en/" + +# The last line ends by doubling the text and adding .en, so +# /server/header +# becomes +# /server/header /server/header.en +# The RewriteRule sequence in the vhost then sees the .en and doesn't +# try to localize /server/header. + +# By the way, we don't look for #include file=... because there are no +# existing useful instances of that, and it shouldn't be used in the +# future, either. Time will tell.