#!/bin/sh

# helper script to update intelephense and it's dependencies

ERROR=0

if [[ ! -f "flatpak-node-generator.py" ]]; then
    echo "Error: Place flatpak-node-generator.py in this directory (https://github.com/flatpak/flatpak-builder-tools/tree/master/node)"
    ERROR=1
fi
if [ -z "$1" ]; then
    echo "Error: Pass the intelephense version number as argument (e.g. 'update-intelephense-language-server 0.6.5')"
    ERROR=1
fi
if [[  $ERROR == 1 ]]; then exit 1; fi

TEMP_DIR="temp-tls-dir"

CURRENT_DIR="$PWD"

mkdir $TEMP_DIR
cd $TEMP_DIR

PACKAGE_URL="https://registry.npmjs.org/intelephense/-/intelephense-$1.tgz"

curl -L -O $PACKAGE_URL

TAR_FILE="$(ls | head -n 1)"
SHA_RET="$(sha256sum $TAR_FILE)"
SHA_SUM=($SHA_RET)
tar -xf $TAR_FILE
rm $TAR_FILE

PACKAGE_DIR="$(ls | head -n 1)"

cd $CURRENT_DIR

cd $TEMP_DIR/$PACKAGE_DIR
npm install --package-lock-only
cd ../../

python flatpak-node-generator.py npm $TEMP_DIR/$PACKAGE_DIR/package-lock.json -o intelephense-language-server-deps.json

rm -rf $TEMP_DIR

echo "Generated intelephense-language-server-deps.json successfully"

echo "Now be sure to update intelephense-language-server.json with the following:"
echo "{
    \"type\": \"archive\",
    \"url\": \"$PACKAGE_URL\",
    \"sha256\": \"$SHA_SUM\",
    \"dest\": \"intelephense\"
},"
