]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
update check script a bit
authorRudolf Polzer <divverent@xonotic.org>
Sun, 21 Aug 2011 11:58:55 +0000 (13:58 +0200)
committerRudolf Polzer <divverent@xonotic.org>
Sun, 21 Aug 2011 11:58:55 +0000 (13:58 +0200)
check-translations.sh

index 5555f2dea45d05ce16aa50e5bc4bdb5e935aabe4..3dc3222838a62f969b6ff0b218439b15bb6eb3e9 100755 (executable)
@@ -1,15 +1,27 @@
 #!/bin/sh
 
-case `hostname` in
-       srv01|hagger|grawp)
+case "$1" in
+       pot)
+               mode=pot
+               mail=true
                ;;
-       *)
+       po)
+               mode=po
+               mail=true
+               language=
+               ;;
+       '')
                echo "Sorry, you are not supposed to use this script."
                echo "This script is solely for use by the Xonotic Core Team."
                echo "Unauthorized use of it can cause HIGHLY annoying merge"
                echo "conflicts."
                exit 1
                ;;
+       *)
+               mode=po
+               mail=false
+               language=$1
+               ;;
 esac
 
 for VM in menu csprogs; do
@@ -21,66 +33,76 @@ for VM in menu csprogs; do
                        VMD=$VM
                        ;;
        esac
-       {
-               find qcsrc/"$VMD" -type f -not -name \*.po -not -name \*.txt
-               find qcsrc/common -type f -not -name \*.po -not -name \*.txt
-               find qcsrc/server -type f -name w_\*.qc
-       } | xgettext -LC -k_ -f- --from-code utf-8 -o "$VM".dat.pot >&2
-       for X in "$VM".dat.*.po; do
-               [ -f "$X" ] || continue
-               for Y in ~/check-translations/"$X".*; do
-                       [ -f "$Y" ] || continue
-                       msgcat -F --use-first "$Y" "$X" > "$X".new
-                       mv "$X".new "$X"
-               done
-               msgmerge -F -U "$X" "$VM".dat.pot >&2
-               msgattrib --untranslated "$X" | grep . > "$X".untranslated || rm -f "$X".untranslated
-               msgattrib --fuzzy "$X"        | grep . > "$X".fuzzy        || rm -f "$X".fuzzy
-               nu=$((`grep -c ^#: "$X".untranslated` + 0))
-               nf=$((`grep -c ^#: "$X".fuzzy`        + 0))
-               n=$(($nu + $nf))
-               if [ $n -gt 0 ]; then
-                       echo "TODO for translation $X:"
-                       echo "Untranslated: $nu"
-                       echo "Fuzzy:        $nf"
-                       ltr=`grep '^"Last-Translator: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
-                       ltm=`grep '^"Language-Team: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
-                       echo "Translators:  $ltr, $ltm"
-                       case "$ltr" in
-                               '')
-                                       to=$ltm
-                                       cc=
-                                       ;;
-                               *)
-                                       to=$ltr
-                                       if [ x"$ltr" = x"$ltm" ]; then
-                                               cc=
-                                       else
-                                               cc=$ltm
-                                       fi
-                                       ;;
-                       esac
-                       if [ -n "$to" ]; then
-                               echo "To:           $to"
-                       fi
-                       if [ -n "$cc" ]; then
-                               echo "Cc:           $cc"
+
+       if [ x"$mode" = x"pot" ]; then
+               {
+                       find qcsrc/"$VMD" -type f -not -name \*.po -not -name \*.txt
+                       find qcsrc/common -type f -not -name \*.po -not -name \*.txt
+                       find qcsrc/server -type f -name w_\*.qc
+               } | xgettext -LC -k_ -f- --from-code utf-8 -o "$VM".dat.pot >&2
+       fi
+
+       if [ x"$mode" = x"po" ]; then
+               for X in "$VM".dat.*.po; do
+                       [ -f "$X" ] || continue
+                       if [ -n "$language" ]; then
+                               if [ x"${X#*.dat.}" != x"$language.po" ]; then
+                                       continue
+                               fi
                        fi
-                       if [ -n "$to" ]; then
-                               while :; do
-                                       echo "Send mail? [y/n]"
-                                       read -r yesno
-                                       case "$yesno" in
-                                               y)
-                                                       attach=
-                                                       if [ $nu -gt 0 ]; then
-                                                               attach="$attach $X.untranslated"
-                                                       fi
-                                                       if [ $nf -gt 0 ]; then
-                                                               attach="$attach $X.fuzzy"
-                                                       fi
-                                                       {
-                                                               cat <<EOF
+                       for Y in ~/check-translations/"$X".*; do
+                               [ -f "$Y" ] || continue
+                               msgcat -F --use-first "$Y" "$X" > "$X".new
+                               mv "$X".new "$X"
+                       done
+                       msgmerge -F -U "$X" "$VM".dat.pot >&2
+                       msgattrib --untranslated "$X" | grep . > "$X".untranslated || rm -f "$X".untranslated
+                       msgattrib --fuzzy "$X"        | grep . > "$X".fuzzy        || rm -f "$X".fuzzy
+                       nu=$((`grep -c ^#: "$X".untranslated` + 0))
+                       nf=$((`grep -c ^#: "$X".fuzzy`        + 0))
+                       n=$(($nu + $nf))
+                       if [ $n -gt 0 ]; then
+                               echo "TODO for translation $X:"
+                               echo "Untranslated: $nu"
+                               echo "Fuzzy:        $nf"
+                               ltr=`grep '^"Last-Translator: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
+                               ltm=`grep '^"Language-Team: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
+                               echo "Translators:  $ltr, $ltm"
+                               case "$ltr" in
+                                       '')
+                                               to=$ltm
+                                               cc=
+                                               ;;
+                                       *)
+                                               to=$ltr
+                                               if [ x"$ltr" = x"$ltm" ]; then
+                                                       cc=
+                                               else
+                                                       cc=$ltm
+                                               fi
+                                               ;;
+                               esac
+                               if [ -n "$to" ]; then
+                                       echo "To:           $to"
+                               fi
+                               if [ -n "$cc" ]; then
+                                       echo "Cc:           $cc"
+                               fi
+                               if [ -n "$to" ]; then
+                                       while $mail; do
+                                               echo "Send mail? [y/n]"
+                                               read -r yesno
+                                               case "$yesno" in
+                                                       y)
+                                                               attach=
+                                                               if [ $nu -gt 0 ]; then
+                                                                       attach="$attach $X.untranslated"
+                                                               fi
+                                                               if [ $nf -gt 0 ]; then
+                                                                       attach="$attach $X.fuzzy"
+                                                               fi
+                                                               {
+                                                                       cat <<EOF
 Hi,
 
 as you provided us with translations in the past, we kindly ask you
@@ -91,50 +113,57 @@ If you do not wish to be contacted for translation updates any more,
 please tell us in a reply to this message.
 
 EOF
-                                                               if [ $nu -gt 0 ]; then
-                                                                       cat <<EOF
+                                                                       if [ $nu -gt 0 ]; then
+                                                                               cat <<EOF
 Attached to this message is a file
 $X.untranslated
 with $nu yet to be translated messages. Please translate them and reply
 with the file containing the translations in the "msgstr" fields.
 
 EOF
-                                                               fi
-                                                               if [ $nf -gt 0 ]; then
-                                                                       cat <<EOF
+                                                                       fi
+                                                                       if [ $nf -gt 0 ]; then
+                                                                               cat <<EOF
 Attached to this message is a file
 $X.fuzzy
 with $nf automatically generated translations. Please verify and/or fix
 them and reply with the file having been verified by you.
 
 EOF
-                                                               fi
-                                                               cat <<EOF
+                                                                       fi
+                                                                       cat <<EOF
 Thanks in advance,
 
 Team Xonotic
 EOF
-                                                       } | mutt \
-                                                               -e "set from=\"divVerent@xonotic.org\"" \
-                                                               -e "set use_from=yes" \
-                                                               -e "set use_envelope_from=yes" \
-                                                               -s "Need update for translations: $X" \
-                                                               -c "$cc" \
-                                                               -b "divVerent@xonotic.org" \
-                                                               -a $attach -- \
-                                                               "$to"
-                                                       break
-                                                       ;;
-                                               n)
-                                                       break
-                                                       ;;
-                                       esac
-                               done
+                                                               } | mutt \
+                                                                       -e "set from=\"divVerent@xonotic.org\"" \
+                                                                       -e "set use_from=yes" \
+                                                                       -e "set use_envelope_from=yes" \
+                                                                       -s "Need update for translations: $X" \
+                                                                       -c "$cc" \
+                                                                       -b "divVerent@xonotic.org" \
+                                                                       -a $attach -- \
+                                                                       "$to"
+                                                               break
+                                                               ;;
+                                                       n)
+                                                               break
+                                                               ;;
+                                               esac
+                                       done
+                               fi
+                       fi
+               done
+
+               for X in "$VM".dat.*.po.disabled; do
+                       [ -f "$X" ] || continue
+                       if [ -n "$language" ]; then
+                               if [ x"${X#*.dat.}" != x"$language.po" ]; then
+                                       continue
+                               fi
                        fi
-               fi
-       done
-       for X in "$VM".dat.*.po.disabled; do
-               [ -f "$X" ] || continue
-               msgmerge -F -U "$X" "$VM".dat.pot >/dev/null 2>&1
-       done
+                       msgmerge -F -U "$X" "$VM".dat.pot >/dev/null 2>&1
+               done
+       fi
 done