project-config/jenkins/scripts/propose_translation_update.sh
Andreas Jaeger a25c9013f6 Blacklist some more repos for translation sync
These repositories need to get stopped as well, since we will rename
them also.

Before we can enable them again, we need to update Zanata and the
repositories itself.

Change-Id: I9986833819566f39280f5a3944a49c8f7de9ebe5
2016-01-28 14:12:18 +01:00

224 lines
6.6 KiB
Bash
Executable File

#!/bin/bash -xe
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
PROJECT=$1
BRANCH=$2
# Replace /'s in the branch name with -'s because Zanata does not
# allow /'s in version names.
ZANATA_VERSION=${BRANCH//\//-}
source /usr/local/jenkins/slave_scripts/common_translation_update.sh
# Propose updates for manuals
function propose_manuals {
# Pull updated translations from Zanata.
pull_from_zanata "$PROJECT"
# Compress downloaded po files
# Only touch glossary in openstack-manuals but not in any other
# repository.
case "$PROJECT" in
openstack-manuals)
compress_manual_po_files "doc" 1
;;
api-site)
compress_manual_po_files "api-ref-guides" 0
compress_manual_po_files "api-quick-start" 0
compress_manual_po_files "api-ref" 0
compress_manual_po_files "openstack-firstapp" 0
;;
ha-guide|operations-guide)
compress_manual_po_files "doc" 0
;;
security-doc)
compress_manual_po_files "security-guide" 0
;;
esac
# Add imported upstream translations to git
for FILE in ${DocFolder}/*; do
DOCNAME=${FILE#${DocFolder}/}
if [ -d ${DocFolder}/${DOCNAME}/locale ] ; then
git add ${DocFolder}/${DOCNAME}/locale/*
fi
if [ -d ${DocFolder}/${DOCNAME}/source/locale ] ; then
git add ${DocFolder}/${DOCNAME}/source/locale/*
fi
done
}
# Propose updates for training-guides
function propose_training_guides {
# Pull updated translations from Zanata.
pull_from_zanata "$PROJECT"
# Compress downloaded po files
compress_po_files "doc/upstream-training"
# Add all changed files to git
git add doc/upstream-training/source/locale/*
}
# Propose updates for python projects
function propose_python {
# Pull updated translations from Zanata
pull_from_zanata "$PROJECT"
# Extract all messages from project, including log messages.
extract_messages "$PROJECT"
extract_messages_log "$PROJECT"
# Now add all changed files to git.
# Note we add them here to not have to differentiate in the functions
# between new files and files already under git control.
git add $PROJECT/locale/*
# Remove obsolete files.
cleanup_po_files "$PROJECT"
# Compress downloaded po files, this needs to be done after
# cleanup_po_files since that function needs to have information the
# number of untranslated strings.
compress_po_files "$PROJECT"
# Some files were changed, add changed files again to git, so that we
# can run git diff properly.
git add $PROJECT/locale/*
}
function propose_horizon {
# Pull updated translations from Zanata.
pull_from_zanata "$PROJECT"
# Invoke run_tests.sh to update the po files
# Or else, "../manage.py makemessages" can be used.
./run_tests.sh --makemessages -V
# Compress downloaded po files
compress_po_files "horizon"
compress_po_files "openstack_dashboard"
# Add all changed files to git
git add horizon/locale/* openstack_dashboard/locale/*
}
function propose_django_openstack_auth {
# Pull updated translations from Zanata.
pull_from_zanata "$PROJECT"
# Update the .pot file
extract_messages "openstack_auth"
# Compress downloaded po files
compress_po_files "openstack_auth"
# Add all changed files to git
git add openstack_auth/locale/*
}
# This function can be used for all django projects
function propose_django {
local project=$1
local modulename=$2
# Pull updated translations from Zanata.
pull_from_zanata "$project"
# Update the .pot file
extract_messages_django "$modulename"
# Compress downloaded po files
compress_po_files "$modulename"
# Add all changed files to git
git add $modulename/locale/*
}
# Setup git repository for git review.
setup_git
# Check whether a review already exists, setup review commit message.
setup_review "$BRANCH"
case "$PROJECT" in
api-site|ha-guide|openstack-manuals|operations-guide|security-doc)
init_manuals "$PROJECT"
setup_manuals "$PROJECT" "$ZANATA_VERSION"
propose_manuals
;;
training-guides)
setup_training_guides "$ZANATA_VERSION"
propose_training_guides
;;
django_openstack_auth)
# NOTE: Once POT file and Zanata resource name are renamed
# from openstack_auth(.pot) to django(.pot), the below can be used.
# setup_django django_openstack_auth openstack_auth "$ZANATA_VERSION"
setup_django_openstack_auth "$ZANATA_VERSION"
# NOTE: Once django_openstack_auth repo has babel-django.cfg,
# the below can be used.
# propose_django django_openstack_auth openstack_auth
propose_django_openstack_auth
;;
horizon)
setup_horizon "$ZANATA_VERSION"
propose_horizon
;;
# Test of translation setup improvement
murano-dashboard|magnum-ui)
# TODO(amotoki): Honor module name in propose_*
# MODULENAME=$(get_modulename $PROJECT python)
# if [ -n "$MODULENAME" ]; then
# setup_project "$PROJECT" "$ZANATA_VERSION"
# setup_loglevel_vars
# propose_python
# fi
MODULENAME=$(get_modulename $PROJECT django)
if [ -n "$MODULENAME" ]; then
setup_django "$PROJECT" "$MODULENAME" "$ZANATA_VERSION"
propose_django "$PROJECT" "$MODULENAME"
fi
;;
python-*)
echo "project temporarily disabled"
exit 0
;;
oslo.*)
echo "project temporarily disabled"
exit 0
;;
ironic-inspector|networking-*|neutron-*|vmware-nsx)
echo "project temporarily disabled"
exit 0
;;
*)
# Project specific setup.
setup_project "$PROJECT" "$ZANATA_VERSION"
# Setup some global vars which will be used in the rest of the
# script.
setup_loglevel_vars
propose_python
;;
esac
# Filter out commits we do not want.
filter_commits
# Propose patch to gerrit if there are changes.
send_patch "$BRANCH"