| #!/bin/bash -u |
| # |
| # This is one of the scripts that is passed to binary_search_state.py to do |
| # the bisection. This one takes a list of object files (either a real list or |
| # a file containing the list) and copies the files from the good objects |
| # directory to the working directory. |
| # |
| |
| |
| source full_bisect_test/common.sh |
| |
| pushd ${BISECT_WORK_BUILD} |
| chmod 644 * |
| |
| OBJ_LIST_FILES=$1 |
| FILE_ARGS=0 |
| |
| if [[ -f ${OBJ_LIST_FILES} ]] ; then |
| file ${OBJ_LIST_FILES} &> ${BISECT_WORK_BUILD}/file_type.tmp |
| grep "ASCII text" ${BISECT_WORK_BUILD}/file_type.tmp |
| result=$? |
| if [[ ${result} -eq 0 ]] ; then |
| FILE_ARGS=1 |
| fi |
| rm ${BISECT_WORK_BUILD}/file_type.tmp |
| fi |
| |
| overall_status=0 |
| |
| if [[ ${FILE_ARGS} -eq 1 ]] ; then |
| while read obj || [[ -n "${obj}" ]]; |
| do |
| echo "Copying {BISECT_GOOD_BUILD}/${obj} to ${BISECT_WORK_BUILD}" |
| cp ${BISECT_GOOD_BUILD}/${obj} ${BISECT_WORK_BUILD} |
| # cp ${obj} ${BISECT_WORK_BUILD}/. |
| status=$? |
| if [[ ${status} -ne 0 ]] ; then |
| echo "Failed to copy ${obj} to work build tree." |
| overall_status=2 |
| fi |
| done < ${OBJ_LIST_FILES} |
| else |
| |
| for o in "$@" |
| do |
| cp ${BISECT_GOOD_BUILD}/${o} ${BISECT_WORK_BUILD} |
| status=$? |
| if [[ ${status} -ne 0 ]] ; then |
| echo "Failed to copy ${o} to work build tree." |
| overall_status=2 |
| fi |
| done |
| fi |
| |
| popd |
| |
| exit ${overall_status} |