1#!/bin/bash 2 3# Quit if any command produces an error. 4set -e 5 6VERSION_FILE=include/chre_api/chre/version.h 7 8# Get the latest API version 9CURRENT_VERSION=$(grep -E "^\#define CHRE_API_VERSION CHRE_API_VERSION_[0-9]+" $VERSION_FILE) 10MAJOR_VERSION=$(echo $CURRENT_VERSION | cut -d "_" -f 6) 11MINOR_VERSION=$(echo $CURRENT_VERSION | cut -d "_" -f 7) 12ARCHIVE_DIRECTORY=v${MAJOR_VERSION}_${MINOR_VERSION} 13mkdir legacy/$ARCHIVE_DIRECTORY 14cp -r include/chre_api/* legacy/$ARCHIVE_DIRECTORY 15 16ARCHIVED_VERSION=$(grep -n "^\#define CHRE_API_VERSION_${MAJOR_VERSION}_${MINOR_VERSION}" $VERSION_FILE) 17LINE_NUMBER=$(($(echo $ARCHIVED_VERSION | cut -d ":" -f 1) + 2)) 18ARCHIVED_VERSION=$(echo $ARCHIVED_VERSION | cut -d ":" -f 2) 19 20HEX_VERSION=$(echo $(echo $(echo $ARCHIVED_VERSION | cut -d "(" -f 2) | cut -d ")" -f 1) | cut -d "x" -f 2) 21HEX_VERSION=$((16#$HEX_VERSION)) 22BITSHIFT=$(($MINOR_VERSION << 16)) 23HEX_VERSION=$(($HEX_VERSION - $BITSHIFT)) 24MINOR_VERSION=$(($MINOR_VERSION + 1)) 25BITSHIFT=$(($MINOR_VERSION<< 16)); 26HEX_VERSION=$(($HEX_VERSION + $BITSHIFT)) 27HEX_VERSION=$(printf "%x" $HEX_VERSION) 28 29sed -i "${LINE_NUMBER}i#define CHRE_API_VERSION_${MAJOR_VERSION}_${MINOR_VERSION} UINT32_C(0x0${HEX_VERSION})\n" $VERSION_FILE 30sed -i "s/${CURRENT_VERSION}/\#define CHRE_API_VERSION CHRE_API_VERSION_${MAJOR_VERSION}_${MINOR_VERSION}/g" $VERSION_FILE 31