Skip to content

Instantly share code, notes, and snippets.

@xxnjdlys
Created December 1, 2015 14:20
Show Gist options
  • Save xxnjdlys/4ab2726ae11dfc0a966f to your computer and use it in GitHub Desktop.
Save xxnjdlys/4ab2726ae11dfc0a966f to your computer and use it in GitHub Desktop.
generate origional apk
#!/bin/bash
# build script for wkremote
#######################################
# abort script on any failure
set -e
# check if necessary tools exists
type zipalign >/dev/null 2>&1 || { echo >&2 "zipalign required but it's not installed. Aborting."; exit 1; }
type java >/dev/null 2>&1 || { echo >&2 "java required but it's not installed. Aborting."; exit 1; }
WORKSPACE=`pwd`
OUTPUT=${WORKSPACE}/build/apks/
OUTPUT_SERVER=${WORKSPACE}/build/apks/server/
OUTPUT_CLIENT=${WORKSPACE}/build/apks/client/
OUTPUT_MAPPING=${WORKSPACE}/build/apks/mappings/
OUTPUT_PID_DIR=${WORKSPACE}/buildtool/
function findcount() {
findstring=$1;
WORKSPACE=`pwd`
count=0
grep -rl $findstring $WORKSPACE | grep ".java" > temp
while read line
do
num=`cat $line | grep $findstring | wc -l`
count=$[$count + $num]
done < temp
rm -f temp
echo $count
}
n1=`findcount "getDevelopContentApiAddress"`
if [ $n1 -gt 1 ]
then
echo "FATAL ERROR : BaseRestClient.getDevelopContentApiAddress() should not be invoked ";
exit 1;
fi
n2=`findcount "getDevAddress"`
if [ $n2 -gt 2 ]
then
echo "FATAL ERROR : BaseInterfaceUtils.getDevAddress() should not be invoked ";
exit 1;
fi
n3=`findcount "getTestApiAddress"`
if [ $n3 -gt 1 ]
then
echo "FATAL ERROR : BaseInterfaceUtils.getTestApiAddress() should not be invoked ";
exit 1;
fi
echo "
CLEAN ALL PROJECTS ... ... ...
"
gradle clean
rm -rf ${OUTPUT}
rm -rf ${OUTPUT_PID_DIR}/output*
mkdir -p ${OUTPUT}
mkdir -p ${OUTPUT_SERVER}
mkdir -p ${OUTPUT_CLIENT}
mkdir -p ${OUTPUT_MAPPING}
echo "
BUILD PLUGIN BEGINS ... ... ...
"
gradle :remoteplugin:aR
cd ${WORKSPACE}/remoteplugin/sign/
rm -f plugin.apk
java -jar signapk.jar platform.x509.pem platform.pk8 ../build/outputs/apk/remoteplugin-release-unsigned.apk pluginu.apk
zipalign -v 4 pluginu.apk plugin.apk
rm pluginu.apk
cp plugin.apk ${WORKSPACE}/server/src/main/assets
cp plugin.apk ${OUTPUT}
echo "
BUILD PLUGIN SUCCESS ... ... ...
BUILD SERVER BEGINS ... ... ...
"
cd ${WORKSPACE}
gradle :server:aR
cd ${WORKSPACE}/server/build/outputs/apk
cp server-client-release.apk server.apk
cp *release.apk ${OUTPUT_SERVER}
cp server.apk ${OUTPUT_PID_DIR}
cd ${OUTPUT_PID_DIR}
python build.py client
mv ${OUTPUT_PID_DIR}output_server/server-client-release.apk ${OUTPUT_PID_DIR}output_server/server.apk
cp ${OUTPUT_PID_DIR}output_server/server.apk ${WORKSPACE}/client/src/main/assets
cp ${OUTPUT_PID_DIR}output_server/server.apk ${OUTPUT_SERVER}
echo "
BUILD SERVER SUCCESS ... ... ...
BUILD CLIENT BEGINS ... ... ...
"
cd ${WORKSPACE}
gradle :client:aR
cd ${WORKSPACE}/client/build/outputs/apk
cp *release.apk ${OUTPUT_CLIENT}
echo "
RENAME APKS IN DIRECTORY CLIENT ... ... ...
"
cd ${OUTPUT_CLIENT}
for i in `ls`; do mv -f ${i} `echo ${i} | sed 's/^client/wkremote/'`; done
echo "
RENAME APKS IN DIRECTORY SERVER ... ... ...
"
cd ${OUTPUT_SERVER}
for i in `ls`; do mv -f ${i} `echo ${i} | sed 's/^server/wkremoteTV/'`; done
echo "
BACKUP MAPPING.TXT FILES ... ... ...
"
client_mapping="$WORKSPACE/client/build/outputs/mapping/update2/release/mapping.txt"
server_mapping="$WORKSPACE/server/build/outputs/mapping/client/release/mapping.txt"
if [ -f "$client_mapping" ]
then
echo "
MODULE CLIENT MAPPING FILE FOUND ... ... ...
"
cd ${WORKSPACE}/client/build/outputs/mapping/update2/release
mv mapping.txt client-mapping.txt
cp client-mapping.txt ${OUTPUT_MAPPING}
else
echo "
MODULE CLIENT MAPPING FILE NOT FOUND ... ... ...
"
fi
if [ -f "$server_mapping" ]
then
echo "
MODULE SERVER MAPPING FILE FOUND ... ... ...
"
cd ${WORKSPACE}/server/build/outputs/mapping/client/release
mv mapping.txt server-mapping.txt
cp server-mapping.txt ${OUTPUT_MAPPING}
else
echo "
MODULE SERVER MAPPING FILE NOT FOUND ... ... ...
"
fi
echo "
SUCCESS ... ... ...
ALL BUILDS GENERATED IN
$OUTPUT
"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment