#!/bin/bash if [[ "$snapsource" == "" ]] then export snapsource="https://github.com/Gubolin/snap.git" fi if [[ $1 = "" ]] then echo "Usage: mobile.sh PLATFORM [BUILDSOURCE]" exit 0 fi scriptdir=$(readlink -e ".") # Requirements: # git, nodejs, android SDK / other platform(s) # cordova (https://cordova.apache.org/) # optional: crosswalk-cordova (https://github.com/crosswalk-project/crosswalk-cordova-android) if [[ $2 != "" ]] then buildsource=$(readlink -e "$2") fi builddir=$(mktemp -d) cordova create $builddir edu.berkeley.snap "Snap\!" cd $builddir rm -rf www config.xml if [[ $2 == "" ]] then git clone "$snapsource" www cd www/ else mv "$buildsource" www cd www fi # add mobile-specific library; it's made available at runtime sed -i '/link rel="shortcut icon"/a\ ' snap.html echo "Adding cordova plugins" # add everything needed and build for $device cordova platform add "$1" > /dev/null cordova plugin add org.apache.cordova.geolocation \ org.apache.cordova.device-motion \ org.apache.cordova.device-orientation \ org.apache.cordova.network-information \ org.apache.cordova.vibration 2> /dev/null #org.apache.cordova.plugin.softkeyboard \ #de.appplant.cordova.plugin.local-notification if [[ $1 == "android" ]] then # Remove default icons cd "$builddir/platforms/android" find -name '*.png' | xargs rm if [[ $crosswalk != "" ]] then # adapted from https://crosswalk-project.org/documentation/cordova/migrate_an_application.html#migrate echo "Preparing crosswalk" rm -Rf "$builddir/platforms/android/CordovaLib/*" cp -a $crosswalk/framework/* "$builddir/platforms/android/CordovaLib/" cp -a "$crosswalk/VERSION" "$builddir/platforms/android/" export ANDROID_HOME=$(dirname $(dirname $(which android))) cd "$builddir/platforms/android/CordovaLib/" android update project --subprojects --target android-21 --path . > /dev/null ant debug > /dev/null cd "$builddir" # prepend permissions to end of manifest sed -i "s,,\ \ \ \ ,g" \ "$builddir/platforms/android/AndroidManifest.xml" fi fi echo "Building application" cordova build "$1" > /dev/null cd $builddir # TODO other platforms find -name '*.apk' | xargs -I {} mv {} $scriptdir echo "Finished."