From ed9b6f935bcad8245d63f1369342c5efcc6a51f3 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Thu, 16 Jun 2011 15:35:46 +0000 Subject: [PATCH] Port changes to update-po.sh. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39109 a592a061-630c-0410-9148-cb99ea01b6c8 --- .../tools/{check-po.sh => update-po.sh} | 75 +++++++++++++------ 1 file changed, 54 insertions(+), 21 deletions(-) rename development/tools/{check-po.sh => update-po.sh} (50%) diff --git a/development/tools/check-po.sh b/development/tools/update-po.sh similarity index 50% rename from development/tools/check-po.sh rename to development/tools/update-po.sh index 9aa662ceb7..c89ae227a6 100644 --- a/development/tools/check-po.sh +++ b/development/tools/update-po.sh @@ -1,10 +1,21 @@ #!/bin/sh # A script to check whether there have been any string changes. +# If it finds some, it commits the new po files and then updates +# the stats. -# The script expects an environment variable FARM that -# will provide it with the location of the LyX www tree. +# The script expects an environment variable FARM that will provide +# it with the location of the LyX www tree. -DEBUG="echo"; +DEBUG=""; + +while getopts ":dh" options $ARGS; do + case $options in + d) DEBUG="echo";; + h) echo "check-po.sh [-d]"; + echo "You must also point the FARM variable to LyX's www tree."; + exit 0;; + esac +done if [ -z "$FARM" ]; then echo "You must set the FARM variable to run this script, e.g.:"; @@ -38,11 +49,11 @@ fi VCS=""; if svn log >/dev/null 2>&1; then VCS="svn"; -else if git diff >/dev/null 2>&1; then +elif git diff >/dev/null 2>&1; then VCS="git"; fi -if [ -n "$VCS" ]; then +if [ -z "$VCS" ]; then echo "Unable to determine version control system!"; exit 1; fi @@ -58,48 +69,70 @@ echo Remerging... make update-po >/dev/null 2>&1; echo -echo Running make i18n.inc... -make i18n.inc >/dev/null 2>&1; if [ -n "$TRUNK" ]; then - mv i18n.inc i18n_trunk.inc I18NFILE=i18n_trunk.inc; else I18NFILE=i18n.inc; fi -if diff -w -q $I18NFILE $FARM/$I18NFILE >/dev/null; then - # No differences found +# make sure things are clean +rm -f i18n.inc; +svn revert $FARM/$I18NFILE; + +echo Running make i18n.inc... +make i18n.inc >/dev/null 2>&1; +if [ -n "$TRUNK" ]; then + mv -f i18n.inc i18n_trunk.inc +fi + +if diff -w -q $I18NFILE $FARM/$I18NFILE >/dev/null 2>&1; then echo No string differences found. + # So we will revert the changes to po files, which are probably + # just dates and such. if [ "$VCS" = "svn" ]; then - svn revert *.po >/dev/null 2>&1; + svn revert *.po; else - git co *.po >/dev/null 2>&1; + git checkout *.po; fi exit 0; fi -# else +# So there are differences. if [ "$VCS" = "svn" ]; then $DEBUG svn ci *.po; else + # We need to make sure that we have a tree without any unpushed + # commits. Otherwise git svn dcommit would commit more than we + # want. + NOTSAFE=""; + if git status | grep -Pq 'Your branch is (?:ahead|behind)'; then + NOTSAFE="TRUE"; + fi $DEBUG git commit *.po -m "Remerge strings."; - # I think probably we shouldn't try to push/commit to remote. - echo "You will need to commit changes to po files manually." + if [ -z "$NOTSAFE" ]; then + $DEBUG git svn dcommit; + fi fi +echo + if ! cd $FARM; then echo "Unable to cd to $FARM!"; exit 1; fi -echo + echo Updating the www-user tree... # note that we're assuming this one is svn. -svn up >/dev/null 2>&1; +svn up; -echo Copying $I18NFILE...; -cp $LYXROOT/po/$I18NFILE .; +echo Moving $I18NFILE...; +mv $LYXROOT/po/$I18NFILE .; echo Committing...; -svn commit -m "* $I18NFILE: update stats" $I18NFILE; +$DEBUG svn commit -m "* $I18NFILE: update stats" $I18NFILE; -echo DONE! +if [ -n "$NOTSAFE" ]; then + echo + echo "Your LyX tree was not clean."; + echo "Your will need to push changes to po files manually." +fi -- 2.39.5