#!/bin/bash
set -o errexit

cd $(dirname $0)
XPI_NAME=$1
ANDROID_APP_ID=org.mozilla.firefox
if [ -z "$XPI_NAME" ] ; then
  echo "No package name given to android-push.sh."
  exit 1
fi

# Push to Android Firefox if device is connected
# XXX on some systems, adb may require sudo...
if type adb > /dev/null 2>/dev/null ; then
  #running `adb devices` below will start adb server/daemon if it wasn't running already
  #we start it and make note if it's us that started it or not, so we can stop it afterwards
  if adb start-server 2>&1 |grep -qF 'daemon not running' ; then
    we_started_adb_daemon=1
  else
    we_started_adb_daemon=0
  fi
  on_exit() {
    if test "$we_started_adb_daemon" == "1"; then
      #if we started it we kill it, to avoid constant dmesg PME# spam, see issue 18103
      adb kill-server
    fi
  }
  trap on_exit EXIT SIGINT

  if adb devices >/dev/null 2>/dev/null ; then
    ADB_FOUND=`adb devices | grep -v 'offline$' | tail -2 | head -1 | cut -f 1 | sed 's/ *$//g'`
    if [ "$ADB_FOUND" != "List of devices attached" ]; then
      echo Pushing "$XPI_NAME" to /sdcard/"$XPI_NAME"
      adb push "../$XPI_NAME" /sdcard/"$XPI_NAME"
      adb shell am start -a android.intent.action.VIEW \
                         -c android.intent.category.DEFAULT \
                         -d file:///mnt/sdcard/pkg/ \
                         -n $ANDROID_APP_ID/.App
    fi
  fi
fi


