# /root/svn-build
# /root/svn-build-4.2
+# avoid running several instances of this script
+# when the svn server has problems, this can very well last quite a while
+
+COMMAND=$(basename $0)
OUTPUT=/build/modules
+LOCK=/var/run/all-modules.pid
+
+function do_update() {
+ build_dir=$1; shift
+ if [ -f $build_dir/auto-update.sh ] ; then
+ $build_dir/auto-update.sh
+ else
+ pushd $build_dir; svn update > .update.log 2>&1 ; popd
+ fi
+}
-# usage: do_version name dir
+# usage: do_version dir name
function do_version () {
- name=$1; shift
build_dir=$1; shift
+ name=$1; shift
out_dir=$OUTPUT/$name
out_file=$out_dir/version.txt
- out_tmp=$out_file.new
+ out_tmp=$out_dir/.version.txt
mkdir -p $out_dir
( echo $name ; \
date ; \
- $build_dir/module-version -a ; \
- date ) > $out_tmp
+ $build_dir/module-version -a --url ; \
+ date ) &> $out_tmp
mv -f $out_tmp $out_file
}
-# usage: do_version name dir
+# usage: do_version dir name
function do_diff () {
- name=$1; shift
build_dir=$1; shift
+ name=$1; shift
out_dir=$OUTPUT/$name
- out_file=$out_dir/version.txt
- out_tmp=$out_file.new
+ out_file=$out_dir/diff.html
+ out_tmp=$out_dir/.diff.html
mkdir -p $out_dir
- ( echo $name ; \
- date ; \
- $build_dir/module-diff -a -o -q ; \
- date ) > $out_tmp
+### older syntax was messy
+# ( echo $name ; \
+# date ; \
+# $build_dir/module-diff -a -o ; \
+# date ) &> $out_tmp
+#
+# ( echo 'WARNINGS (if any)' ; \
+# egrep 'was not found|Skipping failed' $out_tmp ;
+# cat $out_tmp ) > $out_file
+
+ $build_dir/module-diff -a -W $name &> $out_tmp
+
+ mv -f $out_tmp $out_file
+
+}
+
+function usage () {
+ echo "Usage: $COMMAND [-v] [-f] [-i]"
+}
+
+function main () {
+
+ while [[ -n "$@" ]] ; do
+ case "$1" in
+ -f) rm -f $LOCK ;;
+ -i) ls -l $LOCK ; exit 0 ;;
+ -v) set -x ;;
+ *) usage; exit 1;;
+ esac
+ shift
+ done
+
+ [ -f $LOCK ] && exit 1
+
+ echo $$ > $LOCK
+
+ do_update /root/svn-build
+ do_diff /root/svn-build trunk
+ do_version /root/svn-build trunk
+# do_update /root/svn-build-4.2
+# do_diff /root/svn-build-4.2 4.2
+# do_version /root/svn-build-4.2 4.2
+
+ rm $LOCK
- ( echo 'WARNINGS (if any)' ; \
- egrep 'was not found|Skipping failed' $out_tmp ;
- cat $out_tmp ) > $out_file
}
-do_version trunk /root/svn-build
-do_diff trunk /root/svn-build
-do_version 4.2 /root/svn-build-4.2
-do_diff 4.2 /root/svn-build-4.2
+main "$@"