From 5d25b7814faf3272887d7e6dae82438fb084f2be Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 25 May 2016 15:28:42 +0200 Subject: tools: add script to load .po from translationproject.org I use it for years, let's keep it in the repository. Signed-off-by: Karel Zak --- tools/git-tp-sync | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100755 tools/git-tp-sync (limited to 'tools') diff --git a/tools/git-tp-sync b/tools/git-tp-sync new file mode 100755 index 000000000..c2e2d8d8f --- /dev/null +++ b/tools/git-tp-sync @@ -0,0 +1,58 @@ +#!/bin/bash +# +# git-tp-sync - downloads the latest PO files from translationproject.org +# and commits changes to your GIT repository. +# +# Features: +# - commit per PO file (no more huge commits for all .po files) +# - the commit "Author:" field is set according to the Last-Translator +# +# Copyright (C) 2007-2016 Karel Zak +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# + +PROJECT="util-linux" +if [ -n "$1" ]; then + while (( "$#" )); do + if [ -n "$1" ]; then + rsync -Lrtvz rsync://translationproject.org/tp/latest/$PROJECT/$1.po po + fi + shift + done +else + rsync -Lrtvz rsync://translationproject.org/tp/latest/$PROJECT/ po +fi + +PO_NEW=$(git ls-files -o | gawk '/po\/[[:alpha:]_\-]*\.po/ { sub("po/", ""); print $0; }' | sort) +PO_MOD=$(git ls-files -m | gawk '/po\/[[:alpha:]_\-]*\.po/ { sub("po/", ""); print $0; }' | sort) + +function get_author { + echo $(gawk 'BEGIN { FS=": " } /Last-Translator/ { sub("\\\\n\"", ""); print $2 }' "$1") +} + +function do_commit { + local POFILE="$1" + local MSG="$2" + local AUTHOR=$(get_author "$POFILE") + + git commit --author "$AUTHOR" -m "$MSG" "$POFILE" +} + +for f in $PO_MOD; do + do_commit "po/$f" "po: update $f (from translationproject.org)" +done + +for f in $PO_NEW; do + git add "po/$f" + do_commit "po/$f" "po: add $f (from translationproject.org)" +done + -- cgit v1.2.3-55-g7522