summaryrefslogtreecommitdiff
path: root/webserver/update-scripts/create-lang-en-symlinks.sh
blob: 7a0af83cf3eab15a156572c5f9c700acb3dcc97e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh

# Copyright (C) 2014 Assaf Gordon (assafgordon@gmail.com)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

##
## This is an ugly hack script, to work-around the MultiView problem,
## described in multiviews.txt
##
## The script scans all the non-language HTML files under /var/www ,
## and creates an English language symlink to them. Example:
##   /var/www/home.html -> /var/www/home.en.html
##

## 1. find - list all HTML files
## 2. grep - filter out html files with language codes
## 3. xargs+sh - create a symlink for each HTML file.
##
cd /var/www
find . -name "*.html" -type f -print0 \
    | grep -zZvE '\.([A-Za-z][A-Za-z](-[A-Za-z][A-Za-z])?)\.html$' \
    | xargs -0 -L1 -I% \
       sh -c 'B=$(basename % .html) ; D=$(dirname %) ;
              test -e $D/$B.en.html || ln -s  $B.html $D/$B.en.html'