#!/bin/sh
# Update preflight libs (assumes a pyenv approach)

# Copyright (c) 2023, SIL International  (https://www.sil.org)
# Released under the MIT License (https://opensource.org/licenses/MIT)
# maintained by Nicolas Spalinger

echo "Update preflight libs pyenv - version 2023-10-19"

# checking we have pyenv installed 
if ! [ -x "$(command -v pyenv)" ]; then
  echo 'Error: pyenv is not installed. Check the workflow doc for details. '
  exit 0
fi

echo ""
echo "Active python version and location (via pyenv):"
pyenv version
which python3
echo ""

echo "Installing/Updating pip"
python3 -m pip install --upgrade pip setuptools wheel setuptools_scm
echo ""

echo "Populating/updating the preflight dependencies for the active pyenv interpreter"  

# components in editable mode:
# (with source at the root of the user's home directory so that src/ folders don't appear anywhere else)
python3 -m pip install -e git+https://github.com/silnrsi/pysilfont.git#egg=silfont --src "$HOME"/src

# components from main/master directly from upstream git repositories
python3 -m pip install git+https://github.com/silnrsi/palaso-python.git git+https://github.com/googlefonts/GlyphsLib.git git+https://github.com/fonttools/ufoLib2.git git+https://github.com/fonttools/fonttools.git git+https://github.com/typemytype/glyphConstruction.git git+https://github.com/robotools/fontParts.git --use-pep517

# components from stable releases on pypi
python3 -m pip install fs mutatorMath defcon fontMath lxml

# reload the config file to rehash the path for either bash or zsh
if [ -n "$ZSH_VERSION" ]; then
  SHELL_PROFILE="$HOME/.zshrc"
else
  SHELL_PROFILE="$HOME/.bash_profile"
fi
if [ -n "$ZSH_VERSION" ]; then
  . $SHELL_PROFILE
fi

# conditional to only run psfpreflightversion if the command is really available otherwise output a guidance message
if [ -n "$(command -v psfpreflightversion)" ]; then
	psfpreflightversion
	else echo "Open a new Terminal and type psfpreflightversion to check paths and versions of the preflight modules"
fi
