#!/usr/bin/env bash
set -euo pipefail

main() {
  cd "$(dirname "$0")/../.."

  echo "Installing code-server test dependencies..."

  cd test
  yarn install
  cd ..

  cd vendor
  echo "Installing vendor dependencies..."

  # * We install in 'modules' instead of 'node_modules' because VS Code's extensions
  # use a webpack config which cannot differentiate between its own node_modules
  # and itself being in a directory with the same name.
  #
  # * We ignore scripts because NPM/Yarn's default behavior is to assume that
  # devDependencies are not needed, and that even git repo based packages are
  # assumed to be compiled. Because the default behavior for VS Code's `postinstall`
  # assumes we're also compiled, this needs to be ignored.

  local args=(install --modules-folder modules --ignore-scripts)

  if [[ ${CI-} ]]; then
    args+=("--frozen-lockfile")
  fi

  yarn "${args[@]}"

  # Finally, run the vendor `postinstall`
  yarn run postinstall
}

main "$@"