1#!/bin/sh 2# Copyright 2011, ASUSTek Inc. 3# All Rights Reserved. 4# 5# This is UNPUBLISHED PROPRIETARY SOURCE CODE of ASUSTek Inc.; 6# the contents of this file may not be disclosed to third parties, copied 7# or duplicated in any form, in whole or in part, without the prior 8# written permission of ASUSTek Inc.. 9# 10 11Usage() { 12 echo "model_patch TARGET_DIR PATCHLET_DIR" 13 exit 1 14} 15 16do_patch() { 17 local DIR_DST=$1 18 local DIR_SRC=$2 19 local DEPTH=$3 20 local FNAME 21 local BNAME 22 23# declare -i DEPTH 24 25 cd $DIR_DST 26 for FNAME in $DIR_SRC/* ; do 27 if [ -f $FNAME ]; then 28 echo "patch -p${DEPTH} < $FNAME" 29 patch -p${DEPTH} < $FNAME 30 fi 31 done 32 DEPTH=$[DEPTH +1]; 33 for FNAME in $DIR_SRC/* ; do 34 if [ -d $FNAME ]; then 35 BNAME=`basename $FNAME` 36 do_patch $DIR_DST/$BNAME $DIR_SRC/$BNAME $DEPTH 37 fi 38 done 39} 40 41 42if [ "${1}X" = "X" -o "${2}X" = "X" ]; then 43 Usage 44fi 45 46TARGET_DIR=${1} 47PATCH_DIR=${2} 48PWD=`pwd` 49echo ${TARGET_DIR} | grep '^/' > /dev/null 50if [ "$?" = "1" ]; then 51TARGET_DIR=${PWD}/${1} 52fi 53echo ${PATCH_DIR} | grep '^/' > /dev/null 54if [ "$?" = "1" ]; then 55PATCH_DIR=${PWD}/${2} 56fi 57 58if [ ! -d $TARGET_DIR -o ! -d $PATCH_DIR ]; then 59 Usage 60fi 61 62do_patch $TARGET_DIR $PATCH_DIR 1 63cd $PWD 64exit 0 65