diff options
Diffstat (limited to 'z-distfiles/scripts-gw-1.0/SVN-etc')
-rwxr-xr-x | z-distfiles/scripts-gw-1.0/SVN-etc | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/z-distfiles/scripts-gw-1.0/SVN-etc b/z-distfiles/scripts-gw-1.0/SVN-etc new file mode 100755 index 0000000..c802770 --- /dev/null +++ b/z-distfiles/scripts-gw-1.0/SVN-etc @@ -0,0 +1,37 @@ +#!/bin/bash + +if [ "x$1" == "x--help" ]; then + echo "Usage: SVN-etc /backup/dir \"commit message\"" + echo + echo "Copies the /etc directory into the given /backup/dir/etc" + echo "and subsequently performs a \"svn commit\". So the " + echo "backup dir has to be a checkout from an svn repository." + exit 0 +fi + +LOGFILE=${1}/cronlog +ERRFILE=${1}/errlog +BASEDIR=${1}/etc/ + +if [ ! -d "${BASEDIR}" ]; then + mkdir -p $BASEDIR + cd ${1} && svn add etc +fi + +date > $LOGFILE +date > $ERRFILE + +rsync -rptgo --delete-after --exclude ".svn/" /etc/ $BASEDIR 2>> $ERRFILE | grep -v "skipping" +cd $BASEDIR && TL=`find .` && for fl in $TL;do [ -L $fl ] && rm $fl;done +cd $BASEDIR && svn status | grep '^!' | sed -e 's/^!//' | sed -e "s/^ *//" | sed -e 's/ /\\ /g' | xargs svn rm &> $LOGFILE +cd $BASEDIR && svn status | grep '^?' | sed -e 's/^?//' | sed -e "s/^ *//" | sed -e 's/ /\\ /g' | xargs svn add &> $LOGFILE + +MESSAGE="$2" +[ ! "$MESSAGE" ] && MESSAGE="Automatic Update" +cd $BASEDIR >> $LOGFILE 2>> $ERRFILE && svn commit -m "$MESSAGE" >> $LOGFILE 2>> $ERRFILE + +cat $LOGFILE +cat $ERRFILE + +rm $LOGFILE +rm $ERRFILE |