#!/bin/bash
# 
# usage:
#  check_dependencies.sh MOs AOs Electrons
#
# Checks that the list of dependencies given in
# argument is consistent. If the dependencies
# are OK the exit code is 0, otherwise it is 1. 
# If no argument is given, the dependencies are
# read in the Makefile.
# Thu Apr  3 01:44:23 CEST 2014

function unique_list()
{
  for d in $@
  do
    echo $d
  done | sort | uniq
}

if [[ -z $1 ]]
then
  exit 0
fi

if [[ $1 == "-" ]]
then
  COMMAND_LINE=$(cat NEEDED_MODULES)
else
  COMMAND_LINE=$(unique_list $@)
fi

for d in $COMMAND_LINE
do
  if [[ ! -d ${QPACKAGE_ROOT}/src/$d ]]
  then
    echo Error: Directory $d does not exist 
    exit 2
  fi

done

DEPS_LONG=""
for i in $COMMAND_LINE
do
  DEPS_LONG+=" $i "
  DEPS_LONG+=$(cat "${QPACKAGE_ROOT}/src/${i}/NEEDED_MODULES")
done

DEPS=$(unique_list $DEPS_LONG)

if [[ ! "$COMMAND_LINE" == "$DEPS" ]]
then
  DEPS=$(${QPACKAGE_ROOT}/scripts/check_dependencies.sh ${DEPS})
fi
echo "$DEPS"

if [[ "$COMMAND_LINE" == "$DEPS" ]]
then
  exit 0
else
  exit 1
fi
