#!/bin/sh
# Copyright 2011, ASUSTek Inc.
# All Rights Reserved.                
#                                     
# This is UNPUBLISHED PROPRIETARY SOURCE CODE of ASUSTek Inc.;   
# the contents of this file may not be disclosed to third parties, copied
# or duplicated in any form, in whole or in part, without the prior      
# written permission of ASUSTek Inc..                            
#

Usage() {
	echo "model_patch TARGET_DIR PATCHLET_DIR"
	exit 1
}

do_patch() {
 local DIR_DST=$1
 local DIR_SRC=$2
 local DEPTH=$3
 local FNAME
 local BNAME

# declare -i DEPTH

 cd $DIR_DST
 for FNAME in $DIR_SRC/* ; do
  if [ -f $FNAME ]; then
   echo "patch -p${DEPTH} < $FNAME"
   patch -p${DEPTH} < $FNAME
  fi
 done
 DEPTH=$[DEPTH +1];
 for FNAME in $DIR_SRC/* ; do
  if [ -d $FNAME ]; then
   BNAME=`basename $FNAME`
   do_patch $DIR_DST/$BNAME $DIR_SRC/$BNAME $DEPTH
  fi
 done
}


if [ "${1}X" = "X" -o "${2}X" = "X" ]; then
	Usage
fi

TARGET_DIR=${1}
PATCH_DIR=${2}
PWD=`pwd`
echo ${TARGET_DIR} | grep '^/' > /dev/null
if [ "$?" = "1" ]; then
TARGET_DIR=${PWD}/${1}
fi
echo ${PATCH_DIR} | grep '^/' > /dev/null
if [ "$?" = "1" ]; then
PATCH_DIR=${PWD}/${2}
fi

if [ ! -d $TARGET_DIR -o ! -d $PATCH_DIR ]; then
	Usage
fi

do_patch $TARGET_DIR $PATCH_DIR 1
cd $PWD
exit 0
