7d018cc4b4
Push the source (.pot) file independently of the translation (.po) files so that we can disable set -e when pushing the .po files. Previously pushing the .po files would fail the entire test if one of the pushed files contained no translations. This would also prevent other translation files from being pushed. Now push the .pot file separately so that a failure pushing that file still fails the test, but errors pushing the translation files can be ignored. Also add the --skip option to the translation push which will allow all valid translations to be pushed even if some fail. Change-Id: I8958c29113ce5d21a0b281ee13abe94d477fb04c Reviewed-on: https://review.openstack.org/13385 Reviewed-by: James E. Blair <corvus@inaugust.com> Approved: Clark Boylan <clark.boylan@gmail.com> Reviewed-by: Clark Boylan <clark.boylan@gmail.com> Tested-by: Jenkins
61 lines
2.0 KiB
Bash
Executable File
61 lines
2.0 KiB
Bash
Executable File
#!/bin/bash -xe
|
|
|
|
PROJECT=$1
|
|
COMMIT_MSG="Imported Translations from Transifex"
|
|
|
|
git config user.name "OpenStack Jenkins"
|
|
git config user.email "jenkins@openstack.org"
|
|
git config gitreview.username "jenkins"
|
|
|
|
git review -s
|
|
|
|
# See if there is an open change in the transifex/translations topic
|
|
# If so, get the change id for the existing change for use in the commit msg.
|
|
change_info=`ssh -p 29418 review.openstack.org gerrit query --current-patch-set status:open project:openstack/$PROJECT topic:transifex/translations owner:jenkins`
|
|
previous=`echo "$change_info" | grep "^ number:" | awk '{print $2}'`
|
|
if [ "x${previous}" != "x" ] ; then
|
|
change_id=`echo "$change_info" | grep "^change" | awk '{print $2}'`
|
|
# read return a non zero value when it reaches EOF. Because we use a
|
|
# heredoc here it will always reach EOF and return a nonzero value.
|
|
# Disable -e temporarily to get around the read.
|
|
set +e
|
|
read -d '' COMMIT_MSG <<EOF
|
|
Imported Translations from Transifex
|
|
|
|
Change-Id: $change_id
|
|
EOF
|
|
set -e
|
|
fi
|
|
|
|
# initialize transifex client
|
|
tx init --host=https://www.transifex.com
|
|
tx set --auto-local -r ${PROJECT}.${PROJECT}-translations "${PROJECT}/locale/<lang>/LC_MESSAGES/${PROJECT}.po" --source-lang en --source-file ${PROJECT}/locale/${PROJECT}.pot --execute
|
|
|
|
# Pull all upstream translations
|
|
tx pull -a
|
|
# Update the .pot file
|
|
python setup.py extract_messages
|
|
# Use updated .pot file to update translations
|
|
python setup.py update_catalog
|
|
# Add all changed files to git
|
|
git add $PROJECT/locale/*
|
|
|
|
if [ ! `git diff-index --quiet HEAD --` ]
|
|
then
|
|
# Commit and review
|
|
git commit -F- <<EOF
|
|
$COMMIT_MSG
|
|
EOF
|
|
git review -t transifex/translations
|
|
|
|
# Push .pot changes to transifex
|
|
tx --debug --traceback push -s
|
|
# Push translation changes to transifex
|
|
# Disable -e as we can live with failed translation pushes (failures
|
|
# occur when a translation file has no translations in it not really
|
|
# error worthy but they occur)
|
|
set +e
|
|
tx --debug --traceback push -t --skip
|
|
set -e
|
|
fi
|