1# How to use: 2#@sh Reduced.sh api_with_header_file.csv OneUtopia1.0 ../mxlib/ 3# arg1 = CSV file ex:path =api_with_header_file.csv 4# arg2 = The LOCAL path 5# arg3 = Use Additional Contents ex:OneUtopia1.0 6 7filename=$1 8LOCAL_PATH=$2 9UtopiaVersion=$3 10dos2unix $filename 11 12# ********************************************** 13# Environment 14# ********************************************** 15ROOTLIB=$LOCAL_PATH'/mxlib' 16BSP_PATH=$LOCAL_PATH'/build/bsp' 17BSPINC_PATH=$LOCAL_PATH'/build/bsp/include' 18Build_PATH=$LOCAL_PATH'/build' 19LOG_PATH=$LOCAL_PATH'/build/outputlog' 20 21MAX_SCAN=255 22 23#Scan First Row and pair 24function FindSuitableCell() 25{ 26 #Find a suitable pair about filename 27 for ((jndex=1;jndex<$MAX_SCAN; jndex++)); do 28 used=$(awk -F"," -v var=$jndex 'NR==1 {print $var}' $filename) 29 #The pairing is successful 30 if [ "$used" == "API_NAME" ]; then 31 AIP_NAMECell=$jndex 32 break 33 fi 34 done 35 36 #Find a suitable pair about topiaVersion 37 for ((jndex=1;jndex<$MAX_SCAN; jndex++)); do 38 used=$(awk -F"," -v var=$jndex 'NR==1 {print $var}' $filename) 39 #The pairing is successful 40 if [ "$used" == "HEAD_FILE" ]; then 41 HEAD_FILECell=$jndex 42 break 43 fi 44 done 45 46 #Find a suitable pair about topiaVersion 47 for ((jndex=1;jndex<$MAX_SCAN; jndex++)); do 48 used=$(awk -F"," -v var=$jndex 'NR==1 {print $var}' $filename) 49 #The pairing is successful 50 if [ "$used" == $"" ];then 51 break 52 else 53 if [ "$used" == "$UtopiaVersion" ];then 54 UtopiaVersionCell=$jndex 55 break 56 elif [ "$used" != $"" ];then 57 UtopiaVersionCell=$jndex 58 fi 59 fi 60 done 61 #printf "%d" $AIP_NAMECell 62 #printf "%d" $HEAD_FILECell 63 #printf "%d" $UtopiaVersionCell 64 #printf "Use : %s\n" $(awk -F"," -v var=$UtopiaVersionCell 'NR==1 {print $var}' $filename) 65} 66function ReadCVSFile() 67{ 68 itemndex=0 69 temp=$itemndex 70 temp_AIP_File=0 71 while read line 72 do 73 TARGET_AIP_NAME[$itemndex]=$(echo $line | awk -F"," -v var=$AIP_NAMECell '{print $var}') 74 TARGET_AIP_use[$itemndex]=$(echo $line | awk -F"," -v var=$UtopiaVersionCell '{print $var}') 75 TARGET_AIP_File[$itemndex]=$(echo $line | awk -F"," -v var=$HEAD_FILECell '{print $var}' ) 76 if [ ${TARGET_AIP_use[$itemndex]} == "1" ]; then 77 if [ "${TARGET_AIP_File[$itemndex]}" != "$temp_AIP_File" ]; then 78 temp2="${TARGET_AIP_File[$itemndex]}" 79 temp_AIP_File=$temp2 80 printf "%s" ${TARGET_AIP_File[$itemndex]},>>$LOG_PATH/filename.csv 81 printf "\n">>$LOG_PATH/filename.csv 82 fi 83 fi 84 #printf "get %s %s\n" ${TARGET_AIP_NAME[$itemndex]}, ${TARGET_AIP_use[$itemndex]} 85 temp=$itemndex 86 itemndex=$[$temp+1]; 87 88 done < $filename 89 90} 91function do_parsingHeadfile2() 92{ 93 while read line 94 do 95 hfile=$(echo $line | awk -F"," '{print $1}' ) 96 printf " %s \n",$hfile 97 find -L $ROOTLIB -name $hfile -exec cp {} $BSPINC_PATH/ \; 2> $LOG_PATH/error.log 98 done < $LOG_PATH/filename.csv 99 cp -f $ROOTLIB/api/njpeg_ex/apiJPEG_priv.h $BSPINC_PATH/ \; 2> $LOG_PATH/error.log 100 101} 102function do_parsingHeadfile_Contents() 103{ 104 #Remove_First_line=0 105 for ((jndex=1; jndex<${#TARGET_AIP_NAME[@]}; jndex++)); do 106 # Choose must remove API function 107 if [ ${TARGET_AIP_use[$jndex]} == "0" ]; then 108 # Check the file exists on bsp/include/ 109 if [ -f $BSPINC_PATH/${TARGET_AIP_File[$jndex]} ]; then 110 #remove unused item 111 sh $Build_PATH/mcomment.sh ${TARGET_AIP_NAME[$jndex]} $BSPINC_PATH/${TARGET_AIP_File[$jndex]} " " 112 #printf "mark API: %s" ${TARGET_AIP_NAME[$jndex]} 113 #printf " h_file: %s" $BSPINC_PATH/${TARGET_AIP_File[$jndex]} 114 #printf "\n" 115 fi 116 #printf "mark API: %s" $api_name 117 #printf "h_file: %s"$hfile 118 #printf "\n" 119 fi 120 done 121} 122function do_RemoveTab() 123{ 124 rm -rf $LOG_PATH/filename.txt 125 ls $BSPINC_PATH/ --color=never >$LOG_PATH/filename.txt 126 127 128 while read line 129 do 130 hfile=$(echo $line | awk -F"\n" '{print $1}' ) 131 #printf "==>%s\n" $hfile 132 sed 's/\t/ /g' $BSPINC_PATH/$hfile >$LOG_PATH/temp.h 133 mv -f $LOG_PATH/temp.h $BSPINC_PATH/$hfile 134 135 done < $LOG_PATH/filename.txt 136} 137FindSuitableCell 138ReadCVSFile 139do_parsingHeadfile2>>$LOG_PATH/test.log 140sh $Build_PATH/special_case.sh $LOCAL_PATH 141do_RemoveTab 142do_parsingHeadfile_Contents>>$LOG_PATH/test.log 143#do_CPBackup2mxlib 144 145