1 #!/bin/bash -u 2 # 3 # This is one of the scripts that is passed to binary_search_state.py to do 4 # the bisection. This one takes a list of object files (either a real list or 5 # a file containing the list) and copies the files from the good objects 6 # directory to the working directory. 7 # 8 9 10 source full_bisect_test/common.sh 11 12 pushd ${BISECT_WORK_BUILD} 13 chmod 644 * 14 15 OBJ_LIST_FILES=$1 16 FILE_ARGS=0 17 18 if [[ -f ${OBJ_LIST_FILES} ]] ; then 19 file ${OBJ_LIST_FILES} &> ${BISECT_WORK_BUILD}/file_type.tmp 20 grep "ASCII text" ${BISECT_WORK_BUILD}/file_type.tmp 21 result=$? 22 if [[ ${result} -eq 0 ]] ; then 23 FILE_ARGS=1 24 fi 25 rm ${BISECT_WORK_BUILD}/file_type.tmp 26 fi 27 28 overall_status=0 29 30 if [[ ${FILE_ARGS} -eq 1 ]] ; then 31 while read obj || [[ -n "${obj}" ]]; 32 do 33 echo "Copying {BISECT_GOOD_BUILD}/${obj} to ${BISECT_WORK_BUILD}" 34 cp ${BISECT_GOOD_BUILD}/${obj} ${BISECT_WORK_BUILD} 35 # cp ${obj} ${BISECT_WORK_BUILD}/. 36 status=$? 37 if [[ ${status} -ne 0 ]] ; then 38 echo "Failed to copy ${obj} to work build tree." 39 overall_status=2 40 fi 41 done < ${OBJ_LIST_FILES} 42 else 43 44 for o in "$@" 45 do 46 cp ${BISECT_GOOD_BUILD}/${o} ${BISECT_WORK_BUILD} 47 status=$? 48 if [[ ${status} -ne 0 ]] ; then 49 echo "Failed to copy ${o} to work build tree." 50 overall_status=2 51 fi 52 done 53 fi 54 55 popd 56 57 exit ${overall_status} 58