wok diff tramys-server/stuff/tramys.cgi @ rev 17081
Add: tramys-server and tramys-client (yesterday version for history).
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Sun Aug 24 22:43:01 2014 +0300 (2014-08-24) |
parents | |
children | 24e0f312c73d |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/tramys-server/stuff/tramys.cgi Sun Aug 24 22:43:01 2014 +0300 1.3 @@ -0,0 +1,87 @@ 1.4 +#!/bin/sh 1.5 +# tramys - TRAnslate MY Slitaz. Server solution 1.6 +# Tool for managing translation files for SliTaz GNU/Linux 1.7 +# Aleksej Bobylev <al.bobylev@gmail.com>, 2014 1.8 + 1.9 +# How to use: tramys.cgi?lang=$LANG 1.10 +# Pass packages list in HTTP_USER_AGENT header 1.11 +# (seems it have no restrictions for length and no encoded symbols ' ' and '+') 1.12 + 1.13 +. /usr/bin/httpd_helper.sh 1.14 + 1.15 +WORKING=$(mktemp -d) 1.16 +DATADIR=/home/lexeii/Public/tramys 1.17 + 1.18 +# prepare list for search 1.19 +# original GNU gettext searches precisely in this order 1.20 +locales_list() { 1.21 + LL=$(echo $1 | sed 's|^\([^_.@]*\).*$|\1|') 1.22 + CC=$(echo $1 | sed -n '/_/s|^[^_]*\(_[^.@]*\).*$|\1|p') 1.23 + EE=$(echo $1 | sed -n '/./s|^[^\.]*\(\.[^@]*\).*$|\1|p') 1.24 + VV=$(echo $1 | sed -n '/@/s|^[^@]*\(@.*\)$|\1|p') 1.25 + ee=$(echo $EE | tr A-Z a-z | tr -cd a-z0-9); [ "$ee" ] && ee=.$ee 1.26 + [ "x$EE" == "x$ee" ] && ee='' 1.27 + 1.28 + [ "$CC" -a "$EE" -a "$VV" ] && echo -n "$LL$CC$EE$VV " 1.29 + [ "$CC" -a "$ee" -a "$VV" ] && echo -n "$LL$CC$ee$VV " 1.30 + [ "$CC" -a "$VV" ] && echo -n "$LL$CC$VV " 1.31 + [ "$EE" -a "$VV" ] && echo -n "$LL$EE$VV " 1.32 + [ "$ee" -a "$VV" ] && echo -n "$LL$ee$VV " 1.33 + [ "$VV" ] && echo -n "$LL$VV " 1.34 + [ "$CC" -a "$EE" ] && echo -n "$LL$CC$EE " 1.35 + [ "$CC" -a "$ee" ] && echo -n "$LL$CC$ee " 1.36 + [ "$CC" ] && echo -n "$LL$CC " 1.37 + [ "$EE" ] && echo -n "$LL$EE " 1.38 + [ "$ee" ] && echo -n "$LL$ee " 1.39 + echo "$LL" 1.40 +} 1.41 +MY_LOCALES=$(locales_list $(GET lang)) 1.42 + 1.43 +# constants to use in lists 1.44 +US="/usr/share" 1.45 +LC="LC_MESSAGES" 1.46 +PY="/usr/lib/python2.7/site-packages" 1.47 +R="/usr/lib/R/library" 1.48 +RT="$R/translations/%/$LC" 1.49 + 1.50 +for P in $HTTP_USER_AGENT; do 1.51 + 1.52 + for list_type in mo qm; do 1.53 + IFS=$'\n' 1.54 + for line in $(grep -e "^$P " $DATADIR/$list_type.list); do 1.55 + locales=$(echo $line | cut -d' ' -f2) 1.56 + names=$(echo $line | cut -d' ' -f3) 1.57 + [ "x$names" == "x" ] && names=$P 1.58 + pathes=$(echo $line | cut -d' ' -f4) 1.59 + [ "x$pathes" == "x" ] && pathes="$US/locale/%/$LC" 1.60 + 1.61 + IFS=' ' 1.62 + for locale in $MY_LOCALES; do 1.63 + if $(echo " $locales " | grep -q " $locale "); then 1.64 + 1.65 + for name in $names; do 1.66 + for path in $pathes; do 1.67 + eval "fullname=${path//%/$locale}/${name//%/$locale}.$list_type" 1.68 + mkdir -p $WORKING$(dirname $fullname) 1.69 + cp -pf /home/slitaz/cooking/chroot/home/slitaz/wok/$P/install$fullname \ 1.70 + $WORKING$fullname 1.71 + done 1.72 + done 1.73 + break 1.74 + fi 1.75 + done 1.76 + done 1.77 + done 1.78 +done 1.79 + 1.80 +busybox tar -czf $WORKING.tgz -C $WORKING . 1.81 +cat <<EOT 1.82 +Content-Type: application/x-compressed-tar 1.83 +Content-Length: $(stat -c %s $WORKING.tgz) 1.84 +Content-Disposition: attachment; filename=tramys.tgz 1.85 + 1.86 +EOT 1.87 +cat $WORKING.tgz 1.88 + 1.89 +rm -rf $WORKING 1.90 +rm -f $WORKING.tgz