summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'z-distfiles/scripts-gw-1.0/SVN-etc')
-rwxr-xr-xz-distfiles/scripts-gw-1.0/SVN-etc37
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