Created
April 17, 2011 05:44
-
-
Save r0bertz/923784 to your computer and use it in GitHub Desktop.
use to set version/date of the translated doc to english doc's version/date, xmllint it and copy to cvs work dir
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# An example hook script to verify what is about to be committed. | |
# Called by git-commit with no arguments. The hook should | |
# exit with non-zero status after issuing an appropriate message if | |
# it wants to stop the commit. | |
# | |
# To enable this hook, make this file executable. | |
GENTOODIR="/home/zhangle/gentoo/xml/htdocs" | |
WORKDIR="/home/zhangle/workarea/xml/htdocs" | |
getver() { | |
grep -o 'Header.*v 1.[0-9]\+' $1 | sed 's/^.*v \(.*\)/\1/' | |
} | |
getversion() { | |
grep -o '<version>.*</version>' $1 | sed 's/<version>\(.*\)<\/version>/\1/' | |
} | |
setver() { | |
local ver=$(getver $2) | |
sed -i -e "s/\(English CVS version: \).*\( -->\)/\1$ver\2/" $1 | |
} | |
setversion() { | |
local version=$(getversion $2) | |
sed -i -e "s/\(<version>\).*\(<\/version>\)/\1$version\2/" $1 | |
} | |
setdate() { | |
sed -i -e "s/\(<date>\).*\(<\/date>\)/\1$(date +%Y-%m-%d)\2/" $1 | |
} | |
if ! which xmllint >/dev/null 2>&1 | |
then | |
echo -e "please install libxml2 first"; | |
exit 1; | |
fi | |
for i in $(git diff --cached | grep '^+++.*\.xml$' | sed -e 's/^+++ b\///') | |
do | |
filename="$(git rev-parse --show-cdup)$i" | |
if egrep '(^[/]?dyn/|/news/[^/]*.xml)' <<< $filename >/dev/null 2>&1 | |
then | |
continue; | |
fi | |
echo -e -n "\033[32msetting version and date for\033[0m $i" | |
en_fullpath=$GENTOODIR/${i/zh_cn/en} | |
setver $filename $en_fullpath | |
setversion $filename $en_fullpath | |
setdate $filename | |
git add $filename | |
echo -e " \033[32mdone\033[0m" | |
echo -e -n "\033[32mvalidating\033[0m $i" | |
if ! xmllint -valid -noout $filename >/dev/null 2>&1 | |
then | |
echo -e " \033[31mfailed\033[0m" | |
echo -e "\033[32mplease run this:\033[0m" | |
echo -e " xmllint -valid -noout $filename" | |
exit 1; | |
fi | |
echo -e " \033[32mdone\033[0m" | |
DESTDIR=$WORKDIR/$(dirname $i) | |
echo -e -n "\033[32mcopying to\033[0m $DESTDIR" | |
[[ -d $DESTDIR ]] || mkdir -p $DESTDIR | |
cp $filename $DESTDIR/$(basename $i) | |
echo -e " \033[32mdone\033[0m" | |
done | |
exit 0; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment