#!/bin/bash

if [ -z "$2" ]; then
  echo "Usage: $0 old_dir new_dir [tgt_dir]"
  echo "Example: $0 /root/fedora/etc /etc /root/centos/etc"
  exit
fi

if [ "$3" ]; then
  TGTDIR=$3
else
  TGTDIR=/tmp/salpack-migrate/etc
  mkdir -p $TGTDIR
fi
OLDDIR=$1
NEWDIR=$2

PASSWD_GREP_ARGS="`awk -F: '
  (500<=$3&&$3<=65500) { printf " -e ^%s:", $1 }
' $OLDDIR/passwd`"
GROUP_GREP_ARGS="`awk -F: '
  (500<=$3&&$3<=65500) { printf " -e ^%s:", $1 }
' $OLDDIR/group`"

for fn in passwd shadow; do
  cat $NEWDIR/$fn > $TGTDIR/$fn
  grep $PASSWD_GREP_ARGS $OLDDIR/$fn >> $TGTDIR/$fn
done

for fn in group gshadow; do
  cat $NEWDIR/$fn > $TGTDIR/$fn
  grep $GROUP_GREP_ARGS $OLDDIR/$fn >> $TGTDIR/$fn
done

diff -ur $OLDDIR $TGTDIR | grep -v "^Only in " | less
