#!/usr/bin/env bash
#*******************************************************************************
#   Copyright (c) 2019 Dortmund University of Applied Sciences and Arts and others.
#  
#   This program and the accompanying materials are made
#   available under the terms of the Eclipse Public License 2.0
#   which is available at https://www.eclipse.org/legal/epl-2.0/
#  
#   SPDX-License-Identifier: EPL-2.0
#  
#   Contributors:
#        Dortmund University of Applied Sciences and Arts - initial API and implementation
#*******************************************************************************
echo "RTFP patching Script version 1.0"
echo "welcome to the world of tomorrow"

#Path to the cloned RTFP repo
#RTFP_REPO_PATH="~/boardExec"
KERNEL_FOLDER="RTFP_RTOS_KERNEL_PATCHED"
echo "*****************************************************"
echo "cloning dependencies..."
#clone FreeRTOS kernel from svn
echo "cloning FreeRTOS kernel"
svn checkout svn://svn.code.sf.net/p/freertos/code/trunk@2712 $KERNEL_FOLDER > /dev/null
#Clone original port repo
echo "cloning contribute Epiphany port"
mkdir Epiphay_port
cd Epiphay_port
git clone https://github.com/mahmood1994ha/FreeRTOS.git
cd FreeRTOS
#create patch file of original port commit
git format-patch -1 78e8efaf3ca9aa56c389e00411f2c3bcb0222b64
PORT_PATCH_FILE="0001-runs-on-the-epiphany-processor-core-as-present-on-th.patch"
#apply the patch to kernel
echo "exit FreeRTOS"
cd ..
echo "exit Epiphay_port"
cd ..
echo "enter KERNEL_FOLDER"
cd $KERNEL_FOLDER
echo "enter patch dir"
cd FreeRTOS
echo "*****************************************************"
echo "patching port"
patch -p2 < ../../Epiphay_port/FreeRTOS/0001-runs-on-the-epiphany-processor-core-as-present-on-th.patch 
#patch Epiphany port with RTFP fix
cd ../../
patch $KERNEL_FOLDER/FreeRTOS/Source/portable/GCC/Epiphany/port.c < port_patch.patch 
patch $KERNEL_FOLDER/FreeRTOS/Source/portable/GCC/Epiphany/portasm.s < portasm.patch
echo "port patched with RTFP fix"
echo "*****************************************************"
echo "cleaning kernel and port"
pwd
echo "***************************************"
echo "done"