80 lines
2.4 KiB
Bash
Executable File
80 lines
2.4 KiB
Bash
Executable File
#Copyright (C) 2018 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
function auto_patch()
|
|
{
|
|
local patch_dir=$1
|
|
|
|
for file in $patch_dir/*
|
|
do
|
|
if [ -f "$file" ] && [ "${file##*.}" == "patch" ]
|
|
then
|
|
local file_name=${file%.*}; #echo file_name $file_name
|
|
local resFile=`basename $file_name`; #echo resFile $resFile
|
|
local dir_name1=${resFile//#/\/}; #echo dir_name $dir_name
|
|
local dir_name=${dir_name1%/*}; #echo dir_name $dir_name
|
|
local dir=$ROOT_DIR/$dir_name; #echo $dir
|
|
local change_id=`grep 'Change-Id' $file | head -n1 | awk '{print $2}'`
|
|
echo "debug: $file_name $resFile $dir_name1 $dirname $dir $change_id"
|
|
if [ -d "$dir" ]
|
|
then
|
|
cd $dir; git log -n 100 | grep $change_id 1>/dev/null 2>&1;
|
|
if [ $? -ne 0 ]; then
|
|
echo "###patch ${file##*/}### "
|
|
cd $dir; git am -q $file 1>/dev/null 2>&1;
|
|
if [ $? != 0 ]
|
|
then
|
|
git am --abort
|
|
echo " Error : Failed to patch [$file], Need check it.exit"
|
|
exit
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
}
|
|
|
|
function traverse_patch_dir()
|
|
{
|
|
local local_dir=$1
|
|
for file in `ls $local_dir`
|
|
do
|
|
if [ -d $local_dir$file ]
|
|
then
|
|
local dest_dir=$local_dir$file
|
|
auto_patch $dest_dir
|
|
fi
|
|
done
|
|
echo " Patch Finish."
|
|
cd $UBOOT_DIR
|
|
}
|
|
|
|
CURRENT_DIR=$(pwd)/../../device/sei/adt4/pre_submit_for_adt4
|
|
echo "debug: $CURRENT_DIR"
|
|
LOCAL_PATH=$CURRENT_DIR/$(dirname $0)/
|
|
ROOT_DIR=$(pwd)/../..
|
|
UBOOT_DIR=$ROOT_DIR/bootloader/uboot-repo
|
|
|
|
if [ -d "$CURRENT_DIR" ]
|
|
then
|
|
echo ""
|
|
traverse_patch_dir $LOCAL_PATH
|
|
fi
|
|
|
|
if [ $? != 0 ]
|
|
then
|
|
echo "patch error"
|
|
return 1
|
|
fi
|