Skip to content

Instantly share code, notes, and snippets.

@beenhere4hours
Last active September 9, 2015 14:23
Show Gist options
  • Save beenhere4hours/6eb42093f0ce54d98c21 to your computer and use it in GitHub Desktop.
Save beenhere4hours/6eb42093f0ce54d98c21 to your computer and use it in GitHub Desktop.
bash script to assist with building and exporting native modules for appcelerator
#!/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