Commit f621ce27 authored by Shailesh Baldaniya's avatar Shailesh Baldaniya

refactor: Update build-sdk.sh

parent befa16fc
#!/bin/bash #!/bin/bash
CURRENT_DIR=`pwd` CURRENT_DIR=$(pwd)
# The SDK dir should be 2 directories up in the tree, so we use dirname 2 times # The SDK dir should be 2 directories up in the tree, so we use dirname 2 times
# to get the common parent dir of the SDK and the app # to get the common parent dir of the SDK and the app
GIT=`which git` GIT=$(which git)
tmp=`dirname $CURRENT_DIR` cd ../..
tmp=`dirname $tmp` tmp=$(pwd)
SDK_DIR="$tmp/Rocket.Chat.Kotlin.SDK" SDK_DIR="$tmp/Rocket.Chat.Kotlin.SDK"
cd "${CURRENT_DIR}"
echo "CURRENT DIR: $CURRENT_DIR" echo "CURRENT DIR: $CURRENT_DIR"
echo "SDK DIR: $SDK_DIR" echo "SDK DIR: $SDK_DIR"
# check if there are changes not commited # check if there are changes not committed
function git_stat { function git_stat {
local __resultvar=$1 local resultVar=$1
cd $SDK_DIR && $GIT diff --shortstat --exit-code cd "${SDK_DIR}" && "${GIT}" diff --shortstat --exit-code
eval $__resultvar="'$?'" eval ${resultVar}="'$?'"
} }
# check for changes already on the index not commited # check for changes already on the index not committed
function git_stat_cached { function git_stat_cached {
local __resultvar=$1 local resultVar=$1
cd $SDK_DIR && $GIT diff --cached --shortstat --exit-code cd "${SDK_DIR}" && "${GIT}" diff --cached --shortstat --exit-code
eval $__resultvar="'$?'" eval ${resultVar}="'$?'"
} }
# get the SHA of the lastest commit # get the SHA of the latest commit
function git_sha { function git_sha {
temp_sha=`cd $SDK_DIR && $GIT rev-parse --short HEAD` temp_sha=$(cd "${SDK_DIR}" && "${GIT}" rev-parse --short HEAD)
echo "$temp_sha" echo "$temp_sha"
} }
function git_app_branch { function git_app_branch {
temp_branch=`cd $CURRENT_DIR && $GIT rev-parse --abbrev-ref HEAD` temp_branch=$(cd "${CURRENT_DIR}" && "${GIT}" rev-parse --abbrev-ref HEAD)
echo "$temp_branch" echo "$temp_branch"
} }
# check if the tree is dirty (has modifications not commited yet) # check if the tree is dirty (has modifications not committed yet)
function check_git_dirty { function check_git_dirty {
git_stat stat git_stat stat
git_stat_cached cached git_stat_cached cached
if [ $stat -eq 0 ] && [ $cached -eq 0 ]; then if [ ${stat} -eq 0 ] && [ ${cached} -eq 0 ]; then
echo "not dirty" echo "not dirty"
return 1 return 1
else else
...@@ -52,11 +53,11 @@ function check_git_dirty { ...@@ -52,11 +53,11 @@ function check_git_dirty {
# check if the saved last commit is the same as the latest SHA in the tree # check if the saved last commit is the same as the latest SHA in the tree
function check_last_commit { function check_last_commit {
if [ ! -f $SDK_DIR/.last_commit_hash ]; then if [ ! -f ${SDK_DIR}/.last_commit_hash ]; then
echo "last_commit_hash not found" echo "last_commit_hash not found"
return 0 return 0
fi fi
saved_hash=`cat $SDK_DIR/.last_commit_hash` saved_hash=$(cat "${SDK_DIR}"/.last_commit_hash)
last_hash=$(git_sha) last_hash=$(git_sha)
#`cd $SDK_DIR && git rev-parse --short HEAD` #`cd $SDK_DIR && git rev-parse --short HEAD`
if [ "$saved_hash" == "$last_hash" ]; then if [ "$saved_hash" == "$last_hash" ]; then
...@@ -70,7 +71,7 @@ function check_last_commit { ...@@ -70,7 +71,7 @@ function check_last_commit {
function checkout_matching_branch { function checkout_matching_branch {
app_branch=$(git_app_branch) app_branch=$(git_app_branch)
cd $SDK_DIR && $GIT checkout $app_branch 1>/dev/null 2>/dev/null cd "${SDK_DIR}" && "${GIT}" checkout "${app_branch}" 1>/dev/null 2>/dev/null
} }
checkout_matching_branch checkout_matching_branch
...@@ -82,20 +83,20 @@ fi ...@@ -82,20 +83,20 @@ fi
echo "CURRENT SHA: $SHA" echo "CURRENT SHA: $SHA"
# if the tree is not dirty, there is no new commit and the .jars are still there, just skip the build # if the tree is not dirty, there is no new commit and the .jars are still there, just skip the build
if ! check_git_dirty && ! check_last_commit && [ -f $CURRENT_DIR/libs/common-$SHA.jar ] && [ -f $CURRENT_DIR/libs/core-$SHA.jar ]; then if ! check_git_dirty && ! check_last_commit && [ -f "${CURRENT_DIR}"/libs/common-"${SHA}".jar ] && [ -f "${CURRENT_DIR}"/libs/core-"${SHA}".jar ]; then
echo "NO BUILD NEEDED" echo "NO BUILD NEEDED"
exit 0 exit 0
fi fi
cd $SDK_DIR && ./gradlew common:assemble && cd $CURRENT_DIR cd "${SDK_DIR}" && ./gradlew common:assemble && cd "${CURRENT_DIR}"
cd $SDK_DIR && ./gradlew core:assemble && cd $CURRENT_DIR cd "${SDK_DIR}" && ./gradlew core:assemble && cd "${CURRENT_DIR}"
rm $CURRENT_DIR/libs/common* $CURRENT_DIR/libs/core* rm "${CURRENT_DIR}"/libs/common* "${CURRENT_DIR}"/libs/core*
mkdir -p $CURRENT_DIR/libs/ mkdir -p "${CURRENT_DIR}"/libs/
cp -v $SDK_DIR/common/build/libs/common-0.1-SNAPSHOT.jar $CURRENT_DIR/libs/common-$SHA.jar cp -v "${SDK_DIR}"/common/build/libs/common-0.1-SNAPSHOT.jar "${CURRENT_DIR}"/libs/common-"${SHA}".jar
cp -v $SDK_DIR/core/build/libs/core-0.1-SNAPSHOT.jar $CURRENT_DIR/libs/core-$SHA.jar cp -v "${SDK_DIR}"/core/build/libs/core-0.1-SNAPSHOT.jar "${CURRENT_DIR}"/libs/core-"${SHA}".jar
echo "$SHA" > $SDK_DIR/.last_commit_hash echo "$SHA" > "${SDK_DIR}"/.last_commit_hash
exit 0 exit 0
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment