#!/bin/sh

EXIT_VALUE=0
PROGRAM_NAME="check-deps"

fatal()
{
  echo "${PROGRAM_NAME}: fatal: $1" 1>&2
  exit 1
}

error()
{
  echo "${PROGRAM_NAME}: error: $1" 1>&2
}

info()
{
  echo "${PROGRAM_NAME}: info: $1" 1>&2
}

require_fail()
{
  PACKAGE_NAME="$1"
  PACKAGE_URL="$2"
  MODULE_NAME="$3"
  FILE_NAME="$4"

  error "${PACKAGE_NAME} (${PACKAGE_URL}) required but not located" 1>&2
  error "SYSDEPS module ${MODULE_NAME}, file ${FILE_NAME}" 1>&2

  EXIT_VALUE=1
}

required()
{
  MODULE_NAME="$1"
  FILE_NAME="$2"
  PACKAGE_NAME="$3"

  ./sd-status-is "${MODULE_NAME}" succeeded
  if [ $? -ne 0 ]
  then
    package_url=`cat modules/${MODULE_NAME}/package_url` || package_url="missing URL"
    require_fail "${PACKAGE_NAME}" "${package_url}" "${MODULE_NAME}" "${FILE_NAME}"
  fi
}

cd SYSDEPS || fatal "could not change directory to SYSDEPS"

required c_string-flags  flags-c_string  'C_String'
required c_string-libs-S libs-c_string-S 'C_String'
required agar-flags      flags-agar      'agar-core'
required agar-libs       libs-agar       'agar-libs'

if [ ${EXIT_VALUE} -ne 0 ]
then
  info "See the documentation on SYSDEPS if you do not understand how to fix this problem"
  info "http://coreland.ath.cx/code/sysdeps"
fi

exit ${EXIT_VALUE}
