LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File msgheadermerge of Package translation-update-upstream (Project openSUSE:11.4)

#!/bin/bash

# msgheadermerge expected_older.po expected_newer.po dest-header.po [--mergemode|--newdate|]

# This tool merges headers of two .po files and never loses extra info (e. g. plurals).

rm -rf {${1%.po},${2%.po}}-msgheadermerge-temp.{merge-dir,order}
trap "rm -rf {${1%.po},${2%.po}}-msgheadermerge-temp.{merge-dir,order} ${2%.po}-msgheadermerge-tempheader.po" 0

RC=0

# Broken pipe is an expected behavior. Redirect stderr to /dev/null.
msgexec -i $1 $0-parse ${1%.po}-msgheadermerge-temp 2>/dev/null
msgexec -i $2 $0-parse ${2%.po}-msgheadermerge-temp 2>/dev/null

# Keep original POT date with --mergemode and fail for outdated PO:
if test "$4" = --mergemode ; then
	rm ${2%.po}-msgheadermerge-temp.merge-dir/POT-Creation-Date
	if test ${2%.po}-msgheadermerge-temp.merge-dir/PO-Revision-Date -ot ${1%.po}-msgheadermerge-temp.merge-dir/PO-Revision-Date ; then
		if test "$5" = --continue ; then
			RC=1
		else
			exit 1
		fi
	fi
else
	if test "$4" = --newdate ; then
		rm ${1%.po}-msgheadermerge-temp.merge-dir/PO-Revision-Date
		rm ${1%.po}-msgheadermerge-temp.merge-dir/POT-Creation-Date
	else
		if test ${2%.po}-msgheadermerge-temp.merge-dir/POT-Creation-Date -ot ${1%.po}-msgheadermerge-temp.merge-dir/POT-Creation-Date ; then
			rm ${2%.po}-msgheadermerge-temp.merge-dir/POT-Creation-Date
		fi
		if test ${2%.po}-msgheadermerge-temp.merge-dir/PO-Revision-Date -ot ${1%.po}-msgheadermerge-temp.merge-dir/PO-Revision-Date ; then
			rm ${2%.po}-msgheadermerge-temp.merge-dir/PO-Revision-Date
		fi
	fi
fi

# Old project version is the correct one:
rm -f ${2%.po}-msgheadermerge-temp.merge-dir/Project-Id-Version

mv ${2%.po}-msgheadermerge-temp.merge-dir/* ${1%.po}-msgheadermerge-temp.merge-dir/
cat ${1%.po}-msgheadermerge-temp.order >>${2%.po}-msgheadermerge-temp.order

msgmerge --quiet --force-po $2 $0-empty.pot -o ${2%.po}-msgheadermerge-tempheader.po
sed -i '/^#~/,$d' ${2%.po}-msgheadermerge-tempheader.po
msgfilter --force-po -i ${2%.po}-msgheadermerge-tempheader.po -o $3 $0-compose ${1%.po}-msgheadermerge-temp.merge-dir ${2%.po}-msgheadermerge-temp.order

exit $RC