diff --git a/ChangeLog b/ChangeLog index 349eb3181cfa0b075ab39ab47df0e7370581907d..28893942e313cfe1d8ae593a8fac5cf956d438f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-06-06 Per Jonsson <poj@lysator.liu.se> + + Added the update-origin-server utility. + * update-origin-server: New script. Updates the server part of the + origin files for a category on a partion when the category has + been moved to a new server. + * Makefile (install): Added update-origin-server + 2008-06-04 Per Jonsson <poj@lysator.liu.se> Give info when exiting due to "finish" and "stop" files. Make diff --git a/Makefile b/Makefile index 7e2564d31b93a3971cc18d5fa07d3f57bcf90d37..ff1f45f8f685ec0ff8ce8cb5b61ecfe3988f22cb 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,7 @@ install: install-one-task cp lysrdiff-label-disk $(BINDIR)/ cp lysrdiff-sizechange.py $(BINDIR)/ cp lysrdiff-settings $(BINDIR)/ + cp update-origin-server $(BINDIR)/ install-one-task: cp backup-one-task $(BINDIR)/ diff --git a/update-origin-server b/update-origin-server new file mode 100755 index 0000000000000000000000000000000000000000..e60092557b9cf93f20bc1e38a4628423c7ac169f --- /dev/null +++ b/update-origin-server @@ -0,0 +1,64 @@ +#!/bin/sh + +usage () { + echo $0: usage: $0 [ options ] disk part category oldserver newserver >&2 + echo Example: $0 0 1 lsvn stalingrad plantagenet >&2 + echo Recognized options: >&2 + echo ' --non-interactive Automatically commit changes' >&2 + echo 'Always performes changes to the "perm" disk.' >&2 +} + +interactive=1 + +while [ $# -gt 1 ] +do + case "x$1" in + x--non-interactive) + shift + interactive=0;; + x--*) + usage + exit 1;; + x*) break;; + esac +done + +if [ $# != 5 ] +then + usage + exit 1 +fi + +disk="$1" +part="$2" +lysrdiffpart="$1/$2" +category="$3" +oldserver="$4" +newserver="$5" + +category_dir="/lysrdiff/$disk/perm/$part/lysrdiff/backups/$category" + +if [ ! -d $category_dir ] +then + echo "$category not present on $lysrdiffpart" >&2 + exit 1 +fi + +cd $category_dir +for sc in * +do + echo "------ $sc" + OLD=$sc/origin + NEW=$sc/origin.new + cat $OLD | sed "s/^$oldserver/$newserver/" > $NEW + diff -u $OLD $NEW + if [ $? != 0 ] + then + if [ $interactive = 1 ] + then + echo -n '[CONFIRM] ' + read line + fi + mv -f $NEW $OLD + fi +done