Last active
September 9, 2015 14:23
-
-
Save beenhere4hours/6eb42093f0ce54d98c21 to your computer and use it in GitHub Desktop.
bash script to assist with building and exporting native modules for appcelerator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
SCRIPT=`basename ${BASH_SOURCE[0]}` | |
CODE="/Users/$USER/code" | |
exitWithMessageAndCode() { | |
echo "${1}" | |
exit ${2} | |
} | |
# 1: MODULE | |
# 2: APP | |
function buildAndroidModule() { | |
echo -e \\n"[$SCRIPT] buildAndroidModule E" | |
echo -e "[$SCRIPT] buildAndroidModule called with MODULE: $1" | |
pushd $CODE/$1 | |
ant clean | |
SUCCESS=$? | |
if [ $SUCCESS -eq 0 ]; then | |
ant | |
SUCCESS=$? | |
if [ $SUCCESS -eq 0 ]; then | |
MANIFEST_VERSION=$(grep 'version:' manifest | grep -v apiversion | sed 's/[[:alpha:]|:|[:space:]]//g' | awk -F- '{print $1}') | |
MANIFEST_MODULE_ID=$(grep 'moduleid:' manifest | sed 's/moduleid://g' | sed 's/[[:space:]]//g' | awk -F- '{print $1}') | |
MANIFEST_PLATFORM=$(grep 'platform:' manifest | sed 's/platform://g' | sed 's/[[:space:]]//g' | awk -F- '{print $1}') | |
echo "version: $MANIFEST_VERSION moduleid: $MANIFEST_MODULE_ID platform: $MANIFEST_PLATFORM" | |
if [ -d $CODE/$2/modules/$MANIFEST_PLATFORM/$MANIFEST_MODULE_ID/$MANIFEST_VERSION ]; then | |
rm -r $CODE/$2/modules/$MANIFEST_PLATFORM/$MANIFEST_MODULE_ID/$MANIFEST_VERSION | |
fi | |
unzip -o dist/$MANIFEST_MODULE_ID-$MANIFEST_PLATFORM-$MANIFEST_VERSION.zip -d $CODE/$2/ | |
selectPlatform | |
else | |
exitWithMessageAndCode "[$SCRIPT] buildAndroidModule ERROR unable to perform ant build" 1 | |
fi | |
else | |
exitWithMessageAndCode "[$SCRIPT] buildAndroidModule ERROR unable to perform ant clean" 1 | |
fi | |
popd | |
echo "[$SCRIPT] buildAndroidModule X" | |
} | |
# 1: MODULE | |
# 2: APP | |
function buildIOSModule() { | |
echo -e \\n"[$SCRIPT] buildIOSModule E" | |
echo "[$SCRIPT] buildIOSModule called with MODULE: $1" | |
pushd $CODE/$1 | |
./build.py; | |
SUCCESS=$? | |
if [ $SUCCESS -eq 0 ]; then | |
MANIFEST_VERSION=$(grep 'version:' manifest | grep -v apiversion | sed 's/[[:alpha:]|:|[:space:]]//g' | awk -F- '{print $1}') | |
MANIFEST_MODULE_ID=$(grep 'moduleid:' manifest | sed 's/moduleid://g' | sed 's/[[:space:]]//g' | awk -F- '{print $1}') | |
MANIFEST_PLATFORM=$(grep 'platform:' manifest | sed 's/platform://g' | sed 's/[[:space:]]//g' | awk -F- '{print $1}') | |
echo "version: $MANIFEST_VERSION moduleid: $MANIFEST_MODULE_ID platform: $MANIFEST_PLATFORM" | |
if [ -d $CODE/$2/modules/$MANIFEST_PLATFORM/$MANIFEST_MODULE_ID/$MANIFEST_VERSION ]; then | |
rm -r $CODE/$2/modules/$MANIFEST_PLATFORM/$MANIFEST_MODULE_ID/$MANIFEST_VERSION | |
fi | |
unzip -o $MANIFEST_MODULE_ID-$MANIFEST_PLATFORM-$MANIFEST_VERSION.zip -d $CODE/$2 | |
selectPlatform | |
else | |
exitWithMessageAndCode "[$SCRIPT] buildIOSModule ERROR unable to build module" 1 | |
fi | |
popd | |
echo "[$SCRIPT] buildIOSModule X" | |
} | |
# 1: PLATFORM | |
# 2: MODULE | |
function selectApp() { | |
echo -e \\n"[$SCRIPT] selectApp E" | |
echo "[$SCRIPT] selectApp called with PLATFORM: $1 MODULE: $2" | |
APPS=$(ls $CODE/ | grep -i "mobile_app_") | |
APPS+=" QUIT" | |
echo -e \\n"Select app to output module to:" | |
select APP in $APPS; do | |
if [ $APP = "QUIT" ]; then | |
exit | |
else | |
if [ $1 = "ANDROID" ]; then | |
buildAndroidModule $2 $APP | |
elif [ $1 = "IOS" ]; then | |
buildIOSModule $2 $APP | |
fi | |
fi | |
done | |
echo "[$SCRIPT] selectApp X" | |
} | |
# 1: PLATFORM | |
function selectModule() { | |
echo -e \\n"[$SCRIPT] selectModule E" | |
echo "[$SCRIPT] selectModule called with PLATFORM: $1" | |
MODULES=$(ls $CODE/ | grep -i "mobile_module_$1") | |
MODULES+=" QUIT" | |
echo -e \\n"Select module to build:" | |
select MODULE in $MODULES; do | |
if [ $MODULE = "QUIT" ]; then | |
exit | |
else | |
NUM_APPS=$(ls $CODE/ | grep -ic "mobile_app_") | |
if [ $NUM_APPS -eq 0 ]; then | |
exitWithMessageAndCode "[$SCRIPT] selectModule ERROR There are no application repos local" 1 | |
else | |
selectApp $1 $MODULE | |
fi | |
fi | |
done | |
echo "[$SCRIPT] selectModule X" | |
} | |
function selectPlatform { | |
echo -e \\n"[$SCRIPT] selectPlatform E" | |
echo -e \\n"Select platform to build:" | |
PLATFORMS="ANDROID IOS QUIT" | |
select PLATFORM in $PLATFORMS; do | |
if [ $PLATFORM = "QUIT" ]; then | |
return | |
else | |
NUM_MODULES=$(ls $CODE/ | grep -ic "mobile_module_$PLATFORM") | |
if [ $NUM_MODULES -eq 0 ]; then | |
exitWithMessageAndCode "[$SCRIPT] selectPlatform ERROR There are no module repos local" 1 | |
else | |
selectModule $PLATFORM | |
fi | |
fi | |
done | |
echo "[$SCRIPT] selectPlatform X" | |
} | |
selectPlatform |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment