#!/usr/pkg/bin/bash SYSSRC="/usr/src" SCANDIRS="etc etc/rc.d etc/defaults" IGNOREFILES="Makefile CVS" EDITOR="vi" if [ ! -d /root/.mergetmp ]; then mkdir /root/.mergetmp fi touch /root/.mergetmp/diff chmod 0700 /root/.mergetmp/ chmod 0700 /root/.mergetmp/diff scandir() { cd $SYSSRC/$1 for x in *; do done=0 file=`basename $x` if [ -f /$1/$file ]; then isdiff=`diff -u /$1/$file $SYSSRC/$1/$file` if [ ! "$isdiff" = "" ]; then while [ "$done" = "0" ]; do diff -u /$1/$file $SYSSRC/$1/$file >/root/.mergetmp/diff echo -n "File $file has changed, update? [Nyve] " read arg case "$arg" in Y|y) cp $SYSSRC/$1/$file /$1/$file done=1 ;; V|v) less /root/.mergetmp/diff ;; E|e) $EDITOR /$1/$file ;; N|n|*) done=1 ;; esac done fi elif [ -f $SYSSRC/$1/$file ]; then done=0 for ignore in $IGNOREFILES; do if [ "$file" = "$ignore" ]; then done=1 fi done if [ "$done" = "0" ]; then ok=0 while [ "$ok" = "0" ]; do echo -n "New file $file, create? [Nyv] " read arg case "$arg" in Y|y) cp $SYSSRC/$1/$file /$1/$file ok=1 ;; V|v) less $SYSSRC/$1/$file ;; N|n|*) ok=1 ;; esac done fi fi done } for dirs in $SCANDIRS; do echo " ==> Entering directory $dirs " scandir $dirs done rm -rf /root/.mergetmp/