diff options
author | Anders Roxell <anders.roxell@linaro.org> | 2015-01-03 14:06:27 +0100 |
---|---|---|
committer | Anders Roxell <anders.roxell@linaro.org> | 2015-01-03 14:16:57 +0100 |
commit | 652bdc4eb93832b1f252619a296d8a311ede0531 (patch) | |
tree | 728fffbcb560c0d56bddd2d9455b55742eb3f5b9 | |
parent | 188bd003a994ababece6723933f2c47694211926 (diff) |
apply-and-build: restructure the apply patch part
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
-rwxr-xr-x | apply-and-build.sh | 69 |
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 |