#!/bin/bash - 
#===============================================================================
#
#          FILE: check-dependencies.sh
# 
#         USAGE: ./check-dependencies.sh 
# 
#   DESCRIPTION: Check that Perl module dependencies for the hpr_generator 
#		  are installed.
# 
#       OPTIONS: ---
#  REQUIREMENTS: ---
#          BUGS: ---
#         NOTES: ---
#        AUTHOR: Roan "Rho`n" Horning (roan.horning@gmail.com)
#  ORGANIZATION: 
#       CREATED: 09/05/2024 09:55:00 PM
#      REVISION:  ---
#===============================================================================

set -o nounset                              # Treat unset variables as an error

#---  FUNCTION  ----------------------------------------------------------------
#          NAME: is_module_installed 
#   DESCRIPTION: Tests if the supplied module is found on the system 
#    PARAMETERS: Name of the denpendent Perl module
#       RETURNS: 0 if not found, 1 if found
#-------------------------------------------------------------------------------
function is_module_installed {
	HR="----------------------"
	perl -e "use ${1} " 
	if  [ $? -ne 0 ]
	then
		echo ${HR}
	else
		echo "Found module ${1}"
		echo ${HR}
	fi
}

MODULES=( \
	 "Getopt::Long" \
	 "Pod::Usage" \
	 "Config::Std" \
	 "Template" \
	 "Template::Plugin::File" \
	 "Template::Plugin::DBI" \
	 "Template::Plugin::HTML::Strip" \
	 "DBI" \
	 "Tie::DBI" \
	 "DBD::SQLite" \
	 "DBD::mysql" \
	 "Date::Calc" \
	 "Text::CSV_XS" \
)

echo "The following modules must be installed for the site-generator to function: "
for module in "${MODULES[@]}"
do
	echo "* ${module}"
done
echo "When MySQL is used, the DBD:mysql module is required (otherwise it is optional)"
echo "When SQLite is used, then the DBD:SQLite module is required (otherwise it is optional)"

echo "Scanning for modules ..."
echo "----------------------"

for module in "${MODULES[@]}"
do
	is_module_installed "${module}"
done

echo "Finished scanning."