aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnders Roxell <anders.roxell@linaro.org>2015-01-03 14:06:27 +0100
committerAnders Roxell <anders.roxell@linaro.org>2015-01-03 14:16:57 +0100
commit652bdc4eb93832b1f252619a296d8a311ede0531 (patch)
tree728fffbcb560c0d56bddd2d9455b55742eb3f5b9
parent188bd003a994ababece6723933f2c47694211926 (diff)
apply-and-build: restructure the apply patch part
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
-rwxr-xr-xapply-and-build.sh69
1 files changed, 38 insertions, 31 deletions
diff --git a/apply-and-build.sh b/apply-and-build.sh
index a7633a4..c44e690 100755
--- a/apply-and-build.sh
+++ b/apply-and-build.sh
@@ -124,6 +124,41 @@ build_test()
popd > /dev/null
}
+apply_patch() {
+ pushd ${1} > /dev/null
+ logfile_basename=$2
+
+ echo " Trying to apply patch" | tee -a ${SUMMARY_LOG}
+ git am ${patch} >> ${logfile_basename}-am.log 2>&1
+ egrep "^Patch failed at" ${logfile_basename}-am.log > /dev/null
+ if [ $? -eq 0 ]; then
+ rm -f ${logfile_basename}-am.log
+ git am --abort || exit 1
+ git checkout . || exit 1
+ git clean -xdf || exit 1
+ git am --3way ${patch} >> ${logfile_basename}-am-3way.log 2>&1
+ egrep "^Patch failed at" ${logfile_basename}-am-3way.log > /dev/null
+ if [ $? -eq 0 ]; then
+ rm -f ${logfile_basename}-am.log
+ echo " Error: Patch failed to apply" | tee -a ${logfile_basename}-patch.log
+ git am --abort || exit 1
+ git checkout . || exit 1
+ git clean -xdf || exit 1
+ popd > /dev/null
+ cat ${logfile_basename}-patch.log >> ${SUMMARY_LOG}
+ continue
+ else
+ echo " Warning: git am --3way, applied" | tee -a ${logfile_basename}-patch.log
+ fi
+ else
+ echo " Patch applied" | tee -a ${SUMMARY_LOG}
+ fi
+ [[ -f ${logfile_basename}-patch.log ]] && cat ${logfile_basename}-patch.log | tee -a ${SUMMARY_LOG}
+
+ popd > /dev/null
+}
+
+
if [ ! -d ${PATCH_DIR} ]; then
echo "PATCH_DIR is invalid ${PATCH_DIR}"
exit -1;
@@ -147,35 +182,9 @@ for patch in $(find $PATCH_DIR -type f -iregex "${FILE_EXT_REGEX}" |sort -h); do
BUILD_FAILURE=0
CURRENT_LOG="${ODP_LOGDIR}/$(echo $(basename ${patch}))"
echo -e "\n\nUsing patch: $(basename ${patch})" | tee -a ${SUMMARY_LOG}
- pushd ${ODP_BUILDDIR} > /dev/null
-
- echo " Trying to apply patch" | tee -a ${SUMMARY_LOG}
- git am ${patch} >> ${CURRENT_LOG}-am.log 2>&1
- egrep "^Patch failed at" ${CURRENT_LOG}-am.log > /dev/null
- if [ $? -eq 0 ]; then
- rm -f ${CURRENT_LOG}-am.log
- git am --abort || exit 1
- git checkout . || exit 1
- git clean -xdf || exit 1
- git am --3way ${patch} >> ${CURRENT_LOG}-am-3way.log 2>&1
- egrep "^Patch failed at" ${CURRENT_LOG}-am-3way.log > /dev/null
- if [ $? -eq 0 ]; then
- rm -f ${CURRENT_LOG}-am.log
- echo " Error: Patch failed to apply" | tee -a ${CURRENT_LOG}-patch.log
- git am --abort || exit 1
- git checkout . || exit 1
- git clean -xdf || exit 1
- popd > /dev/null
- cat ${CURRENT_LOG}-patch.log >> ${SUMMARY_LOG}
- continue
- else
- echo " Warning: git am --3way, applied" | tee -a ${CURRENT_LOG}-patch.log
- fi
- else
- echo " Patch applied" | tee -a ${SUMMARY_LOG}
- fi
- [[ -f ${CURRENT_LOG}-patch.log ]] && cat ${CURRENT_LOG}-patch.log | tee -a ${SUMMARY_LOG}
+ apply_patch ${ODP_BUILDDIR} ${CURRENT_LOG}
+ pushd ${ODP_BUILDDIR} > /dev/null
# Create patch to use in CHECKFORMAT and CHECKPATCH
git format-patch -1 > /dev/null
@@ -196,11 +205,9 @@ for patch in $(find $PATCH_DIR -type f -iregex "${FILE_EXT_REGEX}" |sort -h); do
rm 0001-*.patch
[[ -f ${CURRENT_LOG}-checkpatch.log ]] && cat ${CURRENT_LOG}-checkpatch.log | tee -a ${SUMMARY_LOG}
-
-
popd > /dev/null
- echo " Building with patch" | tee -a ${SUMMARY_LOG}
+ echo " Building with patch" | tee -a ${SUMMARY_LOG}
build_test ${ODP_BUILDDIR} ${CURRENT_LOG}
pushd ${ODP_BUILDDIR} > /dev/null