#!/bin/bash


# DEFINES
LUNCH_TYPE=generic-eng

# GET SCRIPT LOCATION
DIR=`pwd`
BRANCH=(`cd $(dirname ${BASH_SOURCE[0]})/../../.. && pwd`)
cd $DIR


# Usage info
show_help() {
  echo "
    Usage: ${0##*/} [HELP] [DEVICE]
    Quickly switch to a specified device

    -h, -?, --help      display this help message
    <blank>             list currently attached devices
    DEVICE              system switches to first device that
                        matches this term

    Example:
      ./sdv             prints all connected devices
      ./sdv angler      switches to first angler
      ./sdv ang         switches to first angler device
      ./sdv vol         switches to volantis
      ./sdv 6P          switches to Nexus 6P
      ./sdv 8X          switches to first matching device
                        (eg. 8XV5T15725000936)
  "
  echo
}

# help message
if [[ ( $1 == "--help" ) || ( $1 == "-h" ) || ( $1 == "-?" ) ]]; then
  show_help
  return
fi

# if adb is not available, try to set it up
if [ ! `which adb` ]; then
  echo "\"adb\" not setup. Using branch \"$BRANCH\" and lunch type \"$LUNCH_TYPE\""
  DIR=`pwd`
  cd $BRANCH
  . build/envsetup.sh > /dev/null
  lunch $LUNCH_TYPE > /dev/null
  cd $DIR
fi

# get devices...
if [ $# -eq 0 ]; then
  adb devices -l
  echo "Currently set to \"$ANDROID_SERIAL\""
# ...or switch to specified device
else
  STR=(`adb devices -l | grep "$1"`)
  if [ ${#STR[@]} -gt 0 ]; then
    export ANDROID_SERIAL="$STR"
    echo "Switched to device \"$ANDROID_SERIAL\""
  else
    echo "Device \"$1\" not found"
  fi
fi

