#!/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="";
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;;
+ h) echo "check-po.sh [-d]";
+ echo "You must also point the FARM variable to LyX's www tree.";
+ exit 0;;
esac
done
echo Running make i18n.inc...
make i18n.inc >/dev/null 2>&1;
if [ -n "$TRUNK" ]; then
- mv i18n.inc i18n_trunk.inc
+ mv -f i18n.inc i18n_trunk.inc
fi
if diff -w -q $I18NFILE $FARM/$I18NFILE >/dev/null 2>&1; then
- # No differences found
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;
else
- git co *.po;
+ 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.";
- if [ -n "$NOTSAFE" ]; then
- echo "You will need to push changes to po files manually."
- else
- git svn dcommit;
+ 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;
echo Committing...;
$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