diff --git a/utils/check-dependencies.sh b/utils/check-dependencies.sh new file mode 100755 index 0000000..970db90 --- /dev/null +++ b/utils/check-dependencies.sh @@ -0,0 +1,73 @@ +#!/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."