#! /bin/bash

PATHDESTINATION="$(O="$(cd "$(dirname "$0")" && pwd)/$(basename "$0")"; while [ ! -e "$O/.bioemergences" -a "$O" != "/" ]; do O="$(dirname "$O")"; done; echo "$O")"
SOURCE="$1"
VTK="$2"
NAME="$3"
YOU_CAN_CLOSE="*** You can now close the window ***";

if [ ! -e "${SOURCE}" ]
then
  echo "Source directory does not exist"
  echo "${YOU_CAN_CLOSE}"
  exit 1
fi

if [ $(ls "${SOURCE}/"*.emb | wc -l) -ne 1 ]
then
  echo "No lineage found in ${SOURCE}"
  echo "${YOU_CAN_CLOSE}"
  exit 2
fi

if [ "${NAME}" == "" ]
then
  NAME="$(basename "${SOURCE}")"
fi

if [ "$(uname)" == "Darwin" ]
then
  DESTINATION="${PATHDESTINATION}/cache/${NAME}_Local"
else
  DESTINATION="${PATHDESTINATION}/MovIT/cache/${NAME}_Local"
fi

if [ ! -e "${DESTINATION}" ]
then
  mkdir -p "${DESTINATION}";
  if [ $? -ne 0 ];
  then
    echo "Unable to create cache directory for MovIT"
    echo "${YOU_CAN_CLOSE}"
    exit 3
  fi
fi

######
# Copy of lineage tree
###
lineage="$(basename "$(ls "${SOURCE}"/*.emb | head -n 1)")"
cp "${SOURCE}/${lineage}" "${DESTINATION}/${NAME}_Localn0t1.emb"
if [ $? -ne 0 ]
then
  echo "${YOU_CAN_CLOSE}"
  exit 4
fi

######
# Copy of VTK paths
###
width=""
height=""
depth=""
deltax=""
deltay=""
deltaz=""

if [ -e "${VTK}" ]
then
  if [ "$(uname)" == "Darwin" ]
  then
    extended="-E";
  else
    extended="";
  fi

  ntotal=$(find ${extended} "${VTK}" -regex '.*_t0+_.*' | wc -l)
  printf '' > "${DESTINATION}/rawPaths.txt"

  find ${extended} "${VTK}" -regex '.*_t0+_.*' | while read f
  do
    dn="$(dirname "${f}")"
    fn="$(basename "${f}")"
    pr="${fn%_t*}_t"
    su="_ch${fn#*_ch}"
    na="${fn%_t*}__ch${fn#*_ch}" 
    printf '%s;%s;%s;%s;\ntrue;false;false;false;\n' "${dn}" "${pr}" "${su}" "${na}" >> "${DESTINATION}/rawPaths.txt"
  done
  
  for i in $(seq 1 $((18 - ${ntotal})))
  do
    printf ';;;;\nfalse;false;false;false;\n' >> "${DESTINATION}/rawPaths.txt"
  done

  # get VTK size
  inputvtk=$(find ${extended} "${VTK}" -regex '.*_t0+_.*\.vtk' | head -n 1)
  dimensions=$(grep -a DIMENSIONS $inputvtk)
  spacing=$(grep -a SPACING $inputvtk)

  width=$(echo ${dimensions} | awk '{print $2}')
  height=$(echo ${dimensions} | awk '{print $3}')
  depth=$(echo ${dimensions} | awk '{print $4}')
  deltax=$(echo ${spacing} | awk '{print $2}')
  deltay=$(echo ${spacing} | awk '{print $3}')
  deltaz=$(echo ${spacing} | awk '{print $4}')
fi

######
# Creating default Parameter file
###
. "${PATHDESTINATION}/Algorithmes/HelperFunctions.sh"

version=$(grep -oE 'VERSION=([a-zA-Z0-9.-]+)' "${PATHDESTINATION}/update" | awk -F= '{print $2}')
printf '%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s' \
  "${NAME}_Local:Name" \
  "Created with BioEmergences Workflow Standalone v. ${version}:Comments" \
  ":Timesteps" \
  "${width}:X pixels" \
  "${height}:Y pixels" \
  "${depth}:Z pixels" \
  "${deltax}:X,Y pixel size" \
  "${deltaz}:Z pixel size" \
  ":Delta T" \
  "Internal stuff" \
  "oui" \
  "non:is distant" \
  "null:srbpath" \
  ":HPF" \
  "null:Raw URL" \
  "null:Emb URL" \
  "null:Details URL" > "${DESTINATION}/parameters.txt"

echo "${YOU_CAN_CLOSE}"
exit 0

