#!/usr/bin/env bash

TOOL_DIR="composer"
TOOL_BIN="composer"

SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
  DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"

TOOLS_DIR="$( dirname "$DIR" )"

if [[ ! -x "$TOOLS_DIR/$TOOL_DIR/vendor/bin/$TOOL_BIN" ]]; then
    mkdir -p "$TOOLS_DIR/$TOOL_DIR/vendor/bin"
    cd "$TOOLS_DIR/$TOOL_DIR/vendor/bin" && (
        php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"; \
        php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"; \
        php composer-setup.php; \
        php -r "unlink('composer-setup.php');"; \
    ) && mv composer.phar composer && chmod +x composer && composer self-update
fi

"$TOOLS_DIR/$TOOL_DIR/vendor/bin/$TOOL_BIN" "$@"
