#!/bin/bash -e
# Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved.
# For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md

arraymenu ()
{
  echo "Number of build images: $#"
  echo "$@"
  select option; do # in "$@" is the default
    if [ "$REPLY" -eq "$#" ];
    then
      echo "Exiting..."
      break;
    elif [ 1 -le "$REPLY" ] && [ "$REPLY" -le $(($#-1)) ];
    then
      echo "You selected $option simulator image."
      break;
    else
      echo "Incorrect Input: Select a number 1-$#"
    fi
  done
}

readarray -t dirs < <(find . -maxdepth 1 -type d -iname 'build-linux-*' -printf '%P\n')

if [ ${#dirs[@]} -eq 1 ]; then
    cd "${dirs[0]}"
elif [ ${#dirs[@]} -gt 1 ]; then
    arraymenu "${dirs[@]}"
    cd "${dirs[$REPLY-1]}"
else
    echo "Error: Simulator directory doesn't exists"
    exit -1
fi

PRELOAD_LIB=$(realpath board/linux/libiosyscalls/libiosyscalls.so)
APP_BINARY="./PurePhone.elf"
RENDERER="./service_renderer"
if [ ! -x "$APP_BINARY" ]; then
    echo "Error: $APP_BINARY doesn't exists"
elif [ ! -x "$PRELOAD_LIB" ]; then
    echo "Error: $PRELOAD_LIB doesn't exists"
else
    echo "Running simulator in directory: $(pwd)"
    $RENDERER &
    export IOSYSCALLS_REDIRECT_TO_IMAGE=1
    export LD_PRELOAD=$PRELOAD_LIB
    exec "$APP_BINARY"
fi
