#!/bin/sh # tconfigfiles - Manage Configuration Files # Copyright (c) 2007-2013 TundraWare Inc., Des Plaines, IL USA # All Rights Reserved # $Id: tconfigfiles,v 1.118 2013/02/13 15:33:42 tundra Exp $ # Where things live CFREPO=${CFREPO:-$HOME/configfiles} # The directory that holds everything below # Can be overridden with $CFREPO env var ARCHIVES=archives # Where archives go FILES=tree # Where tree of individual files lives ARCHIVEDIR="$CFREPO/$ARCHIVES" FILEDIR="$CFREPO/$FILES" # Make sure the container directories exist mkdir -p $ARCHIVEDIR mkdir -p $FILEDIR # The name used to invoke the program tells us what to do CMD=`basename $0` case $CMD in "cfarchive") # Make archival copy of current tree timestamp=`date "+%Y-%m-%d-%H%M%S"` cd $CFREPO MACHNAME=`hostname -f` archdir=$MACHNAME-$FILES-$timestamp cp -pvR $FILES $archdir tar -czvf $ARCHIVES/$archdir.tar.gz $archdir rm -rf $archdir ;; "cfbku") # Backup configuration files to tree for f in $* do abspath=`readlink -f $f` bkudir=$FILEDIR`dirname $abspath`/ mkdir -p $bkudir cp -pvR $f $bkudir done ;; "cfinstall") # Install configuration files from tree for f in $* do abspath=`readlink -f $f` targetdir=`echo $abspath | sed s?$FILEDIR??` cp -pvR $f $targetdir done ;; "tconfigfiles") INSTALLDIR=`dirname $0` ln -s $0 $INSTALLDIR/cfarchive ln -s $0 $INSTALLDIR/cfbku ln -s $0 $INSTALLDIR/cfinstall ;; *) echo "Unknown Command ===> $CMD" exit 1 ;; esac