#!/bin/bash -e
set -o pipefail
abort () {
    errcode=$?
    echo "Error: That didn't work..."
    exit $errcode
}
trap abort ERR

cd `dirname "$0"`

SITE=https://android.googlesource.com/platform
for TAGFILE in `find patches -name \*.tag` 
do
    REPO=${TAGFILE:8:-4}
    DEST=android/${REPO}
    if [[ ! -e ${DEST} ]]
    then
        mkdir -p `dirname ${DEST}`
        echo Cloning from ${SITE}/${REPO}
        git clone ${SITE}/${REPO} ${DEST}
    fi

    rm -fR ${REPO}
    TAG=`cat $TAGFILE`
    (cd $DEST && git reset --hard 2>&1 && git checkout ${TAG} 2>&1) > /dev/null
done

FILES=`python files.py`
HEADERS=`cat additional_headers`
for FILE in $FILES $HEADERS frameworks/av/media/libstagefright/include/AMRExtractor.h
do
    echo Copying ${FILE}
    mkdir -p `dirname ${FILE}`
    cp android/${FILE} ${FILE}
done

for PATCH in `find patches -name \*.patch` 
do
    REPO=${PATCH:8:-6}
    echo Patching repo ${REPO}
    for FILE in `grep -- '--- a/' ${PATCH} | colrm 1 6`
    do
        if [[ ! -e ${FILE} ]]
        then
            echo Copying ${REPO}/${FILE}
            mkdir -p `dirname ${REPO}/${FILE}`
            cp android/${REPO}/${FILE} ${REPO}/${FILE}
        fi
    done
    (cd ${REPO} && patch -p1 || true) < $PATCH
done