#!/bin/bash
# meta-bellmo-pre-2.1.0 script by Rod Whitby
# based on meta-meta script by Ed Cates
# intended to flash BellMobility Pre phones with a working webOS 2.1 image
#  Your mileage may vary

[ -d scripts ] || { echo "Run the script from the meta-doctor directory, not the scripts directory" ; exit ; }

W145_JAR_URL="http://palm.cdnetworks.net/rom/pre/p145r0d07142010/b11ep145rod/webosdoctorp100ewwbellmo.jar"
CDMA_JAR_URL="http://palm.cdnetworks.net/rom/pre2/p201r0d02172011/ver1z0np201rod/webosdoctorp102verizonwireless.jar"
W210_JAR_URL="http://palm.cdnetworks.net/rom/preplus/p210r0d03142011/eudep210rod/webosdoctorp101ueu-wr.jar"

W145_FILE="webosdoctorp100ewwbellmo-1.4.5.jar"
CDMA_FILE="webosdoctorp102verizonwireless-2.0.1.jar"
W210_FILE="webosdoctorp101ueu-wr-2.1.0.jar"

W145_BUILD="pre-p100eww-bellmo-1.4.5"
CDMA_BUILD="pre2-p102eww-verizonwireless-2.0.1"
W210_BUILD="preplus-p101ueu-wr-2.1.0"

W145_MD5="e11d44f00d7d9b44e7dcddb3f5b45bee"
CDMA_MD5="643824a4c103e266fd8e2760b098815c"
W210_MD5="03566ac546d72c59d1cdc1af5a4da920"

PATIENT="meta-bellmo-pre-2.1.0"

git="git"
wget="wget"
make="make"
java="java"
patch="patch"
tar="tar"
python="python"

if [ "`uname -s`" == "Darwin" ] ; then 
    tar=gnutar
    export COPYFILE_DISABLE=true
    export COPY_EXTENDED_ATTRIBUTES_DISABLE=true
fi

WEBOS_TARBALL="webOS.tar"
SRC_CDMA_FW="roadrunnercdma_fw.tar"
CDMA_FW="castlecdmafw.tar"
BLD_INFO="palm-build-info"

rm -f ${CDMA_FW} ${WEBOS_TARBALL} ${BLD_INFO} ${BLD_INFO}-unmasqed

for f in $git $wget $make $java $patch $python $tar ; do
	
    which $f > /dev/null || { echo "Cannot find $f.  Please install it." ; exit ; }

done

ARGS=
if [ "$1" = "--wifi-only" ] ; then
    ARGS="BYPASS_ACTIVATION=1 BYPASS_FIRST_USE_APP=1 DISABLE_MODEM_UPDATE=1"
fi

ARGS="${ARGS} ENABLE_DEVELOPER_MODE=1 DISABLE_UPLOAD_DAEMON=1 DISABLE_UPDATE_DAEMON=1 CUSTOM_CARRIER_LIST=bell CUSTOM_MODEL_LIST=P100EWW CUSTOM_WEBOS_DMSET=393 CUSTOM_CARRIER_DMSET=398 CUSTOM_BUILD_INFO=palm-build-info CUSTOM_WEBOS_TARBALL=${WEBOS_TARBALL} PATIENT=${PATIENT} VERSION=2.1.0 DEVICE=preplus CARRIER=wr"

$make ${ARGS} settings

echo
echo "Your custom doctor file will be created at build/${PATIENT}/${W210_FILE}"
echo

mkdir -p downloads

[ ! -f downloads/${W145_FILE} ] && $wget -c ${W145_JAR_URL} -O downloads/${W145_FILE}
[ ! -f downloads/${CDMA_FILE} ] && $wget -c ${CDMA_JAR_URL} -O downloads/${CDMA_FILE}
[ ! -f downloads/${W210_FILE} ] && $wget -c ${W210_JAR_URL} -O downloads/${W210_FILE}

[ $(md5sum downloads/${W145_FILE} | cut -d \  -f 1) != ${W145_MD5} ] && \
        echo "${W145_FILE} did not download properly.  Please run this script again." && \
        rm -f downloads/${W145_FILE} && exit
[ $(md5sum downloads/${CDMA_FILE} | cut -d \  -f 1) != ${CDMA_MD5} ] && \
        echo "${CDMA_FILE} did not download properly.  Please run this script again." && \
        rm -f downloads/${CDMA_FILE} && exit
[ $(md5sum downloads/${W210_FILE} | cut -d \  -f 1) != ${W210_MD5} ] && \
        echo "${W210_FILE} did not download properly.  Please run this script again." && \
        rm -f downloads/${W210_FILE} && exit

# $make clobber

$make VERSION=1.4.5 DEVICE=pre CARRIER=bellmo unpack || exit
$make VERSION=2.0.1 DEVICE=pre2 CARRIER=verizonwireless unpack || exit
$make VERSION=2.1.0 DEVICE=preplus CARRIER=wr unpack || exit

cp build/${W210_BUILD}/resources/${WEBOS_TARBALL} ./

cp build/${CDMA_BUILD}/webOS/${SRC_CDMA_FW} ${CDMA_FW}

$tar -C ./ -f ./${WEBOS_TARBALL} --delete ./${CDMA_FW} || exit
$tar -C ./ -f ./${WEBOS_TARBALL} --append ./${CDMA_FW} || exit

head -n 1 build/${W210_BUILD}/rootfs/etc/${BLD_INFO} >  ./${BLD_INFO}
tail -n 4 build/${W145_BUILD}/rootfs/etc/${BLD_INFO} >> ./${BLD_INFO}

$make ${ARGS} clobber-build all || exit

$java -jar build/${PATIENT}/${W210_FILE}

rm -f ${CDMA_FW} ${WEBOS_TARBALL} ${BLD_INFO}
