diff -r 377edad75934 -r 9f66fe44239c ha-config --- a/ha-config Wed Nov 30 16:19:44 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -#! /bin/bash -e -### BEGIN INIT INFO -# Provides: ha-config -# Required-Start: $local_fs -# Required-Stop: $local_fs -# Default-Start: S -# Default-Stop: -# Short-Description: ha-config -### END INIT INFO - -# © 2006 Heiko Schlittermann -# -# Es wird davon ausgegangen, daß in /ha-config alles liegt, was -# auf beiden System *unterschiedlich* sein muß. Oder: beide -# Systeme sind an allen anderen Stellen *identisch*. -# $Id$ -# $URL$ - -ME=`basename $0` - -source /etc/ha-sync/ha-sync.conf - -test "$DIR" || { - echo "Need directory" >&2 - exit 2 -} - -# Erst mal sicherstellen, daß das Verzeichnis auch da ist - -if ! test -e /etc/fstab; then - echo "$ME: /etc/fstab doesn't exist!" >&2 - exit -fi - -D=; for d in ${DIR//\// }; do - test -d $DIR && break - - D=$D/$d - egrep -q "^[^#][[:print:]]+[[:space:]]+$D[[:space:]]" /etc/fstab \ - && mount $D - -done - -cd $DIR - -# Den aktuellen Hostnamen ermitteln wir von der Kernel-Kommando-Zeile -# (den letzten dort auftauchenden hostname=XXX Parameter) -# oder wenn das nicht hilft über das 'hostname'-Kommando - -eval `grep -o 'hostname=[-[:alnum:]]\+' /proc/cmdline | tail -1` -hostname=${hostname-`hostname`} - -# Nun laufen wir über alle Verzeichnisse, die unseren Hostnamen -# haben und gehen davon aus, daß der Rest des Verzeichnisnamens -# das Zielverzeichnis darstellt. -# Dann legen wir einen Link 'current.$target' auf dieses Verzeichnis. -# Warum? Damit z.B. in /etc/exim4 dann immer *auf jedem Host* ein Link -# nach /ha-config/current.etc/exim4/exim4.conf liegen kann. Sonst wären die -# /etc-Verzeichnisse ja wieder unterschiedlich. -# FIXME: Was, wenn es nicht ein Verzeichnis direkt unter / ist? -for p in $hostname.*; do - - # Ziel ist das, was dem Punkt folgt - target=${p#$hostname.} - - echo "$ME: found target $target" >&2 - - echo "$ME: `rm -vf current.$target`" >&2 - echo "$ME: `ln -vs $p current.$target`" >&2 - - # Wenn Konflikte auftreten, diese Konflikt-Files - # zur Seite legen - echo "$ME: resolving possible conflicts" >&2 - stow --target /$target -ncR current.$target 2>&1 \ - | sed 's/^.*[[:space:]]vs\.[[:space:]]\+//' \ - | tee /tmp/$ME.tmp \ - | xargs -n1 -i{} mv -v {} {}.stow.`date -I`.saved - - echo "$ME: found `wc -l &2 - rm -f /tmp/$ME.tmp - - echo "$ME: stowing" >&2 - stow --target /$target -R current.$target -done - -# vim:ai aw sm: