#!/bin/bash # This script will recursively search all |FILES| from the current # directory and replace all |TYPES| according to the list below. # NOTE 1: # If this script is run from .../system/bt (as it's intended to be), # please edit stack/include/bt_types.h next and remove the typedef's # near the top and restore the definitions of TRUE and FALSE. These # are still used in the vnd_* files and device specific repositories. # NOTE 2: # The list of files to be modified also includes "*.patch", which means # this script can be used to help cherry-picking changes from older # branches. Follow this workflow outline: # 1. git format-patch [-1] # 2. Run change_type script on patch[es] # 3. git apply / git am # Regular expression matching the file name FILES="\.h$|\.c$|\.cpp$|\.cc$|\.patch$" # Search/replace terms, separated by ":" TYPES=( "UINT8 :uint8_t " "UINT16 :uint16_t " "UINT32 :uint32_t " "UINT64 :uint64_t " "INT8 :int8_t " "INT16 :int16_t " "INT32 :int32_t " "INT64 :int64_t " "UINT8:uint8_t" "UINT16:uint16_t" "UINT32:uint32_t" "UINT64:uint64_t" "INT8:int8_t" "INT16:int16_t" "INT32:int32_t" "INT64:int64_t" "BOOLEAN:bool " "TRUE:true" "FALSE:false" "__FUNCTION__:__func__" ) function process_file { echo -n "Processing file $1 " for tt in "${TYPES[@]}" ; do before=${tt%%:*} after=${tt#*:} echo -n "." sed -i -e "s/\b${before}/${after}/g; s/${after}_/${before}_/g;" "$1" done echo } function process_files { until [ -z "$1" ] do process_file "$1" shift done } # Let's do this ... process_files `find ./ | grep -E "${FILES}"` # All done ... echo echo "All done." # Try to be helpful ... PWD=`pwd` if [[ "${PWD}" == */system/bt ]] then echo "Please edit ${PWD}/stack/include/bt_types.h next." fi