#!/bin/sh
set -e

cd /app

dependencies_checksum() {
  {
    for file in package.json package-lock.json bower.json .bowerrc .npmrc; do
      [ -f "$file" ] && sha256sum "$file"
    done

    find patches -type f -print 2>/dev/null | sort | while IFS= read -r file; do
      sha256sum "$file"
    done
  } | sha256sum | awk '{print $1}'
}

checksum_file="./node_modules/.docker-dependencies-checksum"
current_checksum="$(dependencies_checksum)"

if [ ! -x ./node_modules/.bin/ember ] ||
  [ ! -f "$checksum_file" ] ||
  [ "$(cat "$checksum_file")" != "$current_checksum" ]; then
  npm install
  printf '%s\n' "$current_checksum" > "$checksum_file"
fi

exec "$@"
