#!/bin/sh

username=${username-0}
domain=${domain-0}
ip=${ip-0}

p="`basename $0`"

while test $# -ge 1
do
case "$1" in
    -h* | --h*)
      $0
      exit 0;;
    -u=* | --u=*) username=`echo $1 | sed 's/[-a-z_]*=//'`; shift;;
    -d*=* | --d*=*) domain=`echo $1 | sed 's/[-a-z_]*=//'`; shift;;
    -i*=* | --i*=*) ip=`echo $1 | sed 's/[-a-z_]*=//'`; shift;;
    esac
done

####################################

if test "$username" = "0" || test "$domain" = "0" || test "$ip" = "0"; then 
echo '' 
echo 'NAME' 
echo "  $p - migrate virtual hosting account" 
echo '' 
echo "SYNOPSIS" 
echo '' 
echo "  $p [-u=USERNAME] [-d=DOMAIN] [-i=IP]"

echo ''
echo "Allow Server: "
echo "Altair: 203.124.10.4"
echo "Altair2: 203.124.10.143"
echo "Ares: 203.124.10.69"
echo "Athena: 203.124.10.2"
echo "Mars: 203.124.10.82"
echo "Mars2: 203.124.10.84"
echo "Mars3: 203.124.10.32"
echo "Moon: 203.124.10.81"
echo "Neptune: 203.124.10.110"
echo "Neptune2: 203.124.10.171"
echo "Pan: 203.124.10.41"
echo "Pluto: 203.124.10.38"
echo "Uranus: 203.124.10.48"
echo "Vega: 203.124.10.76"
echo ''
echo "EXAMPLE"
echo ''
echo "     $p -u=general -d=generalchea.net -i=203.124.10.41"

echo ''
exit 0;

fi

###################################################
#  Account Info                                   #
###################################################
###################################################

USERNAME=$username
DOMAIN=$domain
IP=$ip
#QUSERNAME="$username""q"

###################################################
###################################################
HOMEDIR=/export/home/
#MAILDIR=/var/vpopmail/domains/

NOUSER=`grep "^$USERNAME:" /etc/passwd | awk 'BEGIN { FS = ":[ \t]*" } { print $1}'`
#NOQUSER=`grep "^$QUSERNAME:" /etc/passwd | awk 'BEGIN { FS = ":[ \t]*" } { print $1}'`


echo ''
echo 'perform some test:'
echo ''


if [ -n "$NOUSER" ]; then
  echo "1. Check UserName ... pass."
else
  echo "1. Check UserName ... fail! user \"$USERNAME\" not exist."
  exit 
fi

if [ -d "$HOMEDIR/$USERNAME" ]; then
  echo "2. Check Home Dir ... pass."
else
  echo "2. Check Home Dir ... fail! \"$HOMEDIR/$USERNAME\" not exist."
  exit 
fi

#if [ -n "$NOQUSER" ]; then
#  echo "3. Check Vpopmail UserName ... pass."
#else
#  echo "3. Check Vpopmail UserName ... fail! user \"$QUSERNAME\" not exist."
#  exit
#fi

#if [ -d "$MAILDIR/$DOMAIN" ]; then
#  echo "4. Check Vpopmail Dir ... pass."
#else
#  echo "4. Check Vpopmail Dir ... fail! \"$MAILDIR/$DOMAIN\" not exist."
#  exit
#fi

echo ''
echo "You are going to migrate hosting account for \"$DOMAIN\" from \"$IP\""
echo ''

echo 'Confirm the Account Information:'
echo '------------------------------------'
echo "  User Name     = $USERNAME"
echo "  Domain        = $DOMAIN"
echo "  IP            = $IP"
#echo "  Mail UserName = $QUSERNAME"
echo '------------------------------------'
echo ''


prompt="Double check the above info. this program can't be undo!!!\nAre you ready to migrate web hosting account using above info? [y/n]:"
echo "$prompt"   
while read -n1 char
do
    case $char in
        n | N )
            # <commands as required>
            exit
            ;;
        y | Y )
            # <commands as required>
            break
            ;;
        * )
	    echo "\nInvalid response, enter only 'y' for yes or 'n' for no";;
    esac
done

echo "$DOMAIN|$USERNAME|$IP|$OPTION|$QUSERNAME|`who am i | awk '{print $1\"|\"$6}'`|`date`" >> /var/root/bin/logs/move_account.log

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin
export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/usr/local/ssl/lib:/usr/sfw/lib:/usr/local/mysql/lib/mysql:/usr/local/BerkeleyDB/lib
export RSYNC_PASSWORD="A9djkeT3HEw"

####################################
#  1. Sync Home Dir                #
####################################

echo ''
echo '1. Sync Home Dir'
echo ''

/usr/local/bin/rsync -avz --numeric-ids --stats --delete --links --ignore-errors \
rsyncman@$IP::root/export/home/$USERNAME/ /export/home/$USERNAME/


/usr/bin/chown -R $USERNAME:users /export/home/$USERNAME/
/usr/bin/chown -R root:other /export/home/$USERNAME/logs/

####################################
#  2. Chown Home Dir                #
####################################
                       
#echo ''                
#echo '2. Sync Mail Dir'
#echo ''


CHECKSL=`find /export/home/"$USERNAME"/ -type l`


if [ -n "$CHECKSL" ]; then
   ls -al $CHECKSL
  echo "Symbolic Link exist."
  echo "Symbolic Link exist."
  echo "Symbolic Link exist."
  echo "Symbolic Link exist."
  echo "Symbolic Link exist."
  echo "Symbolic Link exist."
  echo "Symbolic Link exist."
  echo "Symbolic Link exist."
  echo "Symbolic Link exist."
  echo "Symbolic Link exist."
  echo "Please check the Symbolic Link and chown manually."
  exit
else

/usr/bin/chown -R $USERNAME:users /export/home/$USERNAME/
/usr/bin/chown -R root:other /export/home/$USERNAME/logs/

fi

exit 0
