forked from HPR/hpr_generator
Compare commits
13 Commits
cbe3dd4e0d
...
main
Author | SHA1 | Date | |
---|---|---|---|
2e43f79d52 | |||
|
00ab3b3065 | ||
|
4af0c021eb | ||
|
3abeb25b03 | ||
|
e2fd890669 | ||
e21f434c2a | |||
e2c591edff | |||
28a75efe1b | |||
94baef679f | |||
11738f5052 | |||
|
c9e1446f1f | ||
|
bbf5c26dab | ||
|
2ca4d32282 |
@@ -111,7 +111,7 @@ file are found in the comments within the file.
|
|||||||
|
|
||||||
Any database supported by the Perl:DBI and Perl::DBD modules can be used with
|
Any database supported by the Perl:DBI and Perl::DBD modules can be used with
|
||||||
the site-generator program. Currently the hpr_generator project works with
|
the site-generator program. Currently the hpr_generator project works with
|
||||||
a MySQL or SQLite database.
|
an SQLite database.
|
||||||
|
|
||||||
Find the [DBI] section of the file. It should look like the following
|
Find the [DBI] section of the file. It should look like the following
|
||||||
|
|
||||||
@@ -146,26 +146,6 @@ The hpr.db section of the driver option `dbi:SQLite:hpr.db` is the path
|
|||||||
to the sqlite file. The default assumes the hpr.db file is located in the same
|
to the sqlite file. The default assumes the hpr.db file is located in the same
|
||||||
directory as the site-generator.
|
directory as the site-generator.
|
||||||
|
|
||||||
### MySQL
|
|
||||||
|
|
||||||
Remove the comment character from the start of the database, driver,
|
|
||||||
user, and password option lines:
|
|
||||||
|
|
||||||
```
|
|
||||||
# Configuration settings for MySQL
|
|
||||||
database: mysql
|
|
||||||
driver: dbi:mysql:database=hpr_hpr:hostname=localhost
|
|
||||||
user: hpr-generator
|
|
||||||
password: *********
|
|
||||||
```
|
|
||||||
|
|
||||||
This assumes that the MySQL database service is available at the localhost
|
|
||||||
hostname, that the database name (hpr_hpr) is the database created from
|
|
||||||
the hpr.sql dump file or manually created by you, that the user (hpr-generator)
|
|
||||||
was added by you and has read rights to the hpr_hpr database, and that the
|
|
||||||
password (replace ********* with the actual password) matches the password set
|
|
||||||
for the hpr-generator database user.
|
|
||||||
|
|
||||||
## Configuring the website for viewing locally
|
## Configuring the website for viewing locally
|
||||||
|
|
||||||
For HTML links to work when viewing the files on your local machine using the
|
For HTML links to work when viewing the files on your local machine using the
|
||||||
|
13
README.md
13
README.md
@@ -15,15 +15,6 @@ Static web page generator for the Hacker Public Radio website.
|
|||||||
2. Run `./utils/update-hpr.sh`
|
2. Run `./utils/update-hpr.sh`
|
||||||
* SQLite v3.8.3 or greater is recommended. CTE WITH clauses are used in some template queries. Must convert WITH
|
* SQLite v3.8.3 or greater is recommended. CTE WITH clauses are used in some template queries. Must convert WITH
|
||||||
clauses to sub-queries when using earlier versions of SQLite.
|
clauses to sub-queries when using earlier versions of SQLite.
|
||||||
* With MySQL
|
|
||||||
* Create database hpr_hpr in the MySQL server from HPR dump file.
|
|
||||||
- ``sudo mysql --host=localhost < hpr.sql``
|
|
||||||
* Create a user that will be used by the site-generator.
|
|
||||||
- Suggested username: hpr-generator
|
|
||||||
- ``CREATE USER 'hpr-generator'@'localhost' IDENTIFIED BY '<password>';``
|
|
||||||
* Limit the user's privileges to EXECUTE and SELECT
|
|
||||||
- ``GRANT SELECT ON hpr_hpr.* TO 'hpr-generator'@'localhost';``
|
|
||||||
- ``GRANT EXECUTE ON `hpr_hpr`.* TO 'hpr-generator'@'localhost';``
|
|
||||||
* Install the needed Perl modules using preferred method (distribution packages, CPAN, etc.)
|
* Install the needed Perl modules using preferred method (distribution packages, CPAN, etc.)
|
||||||
* Getopt::Long
|
* Getopt::Long
|
||||||
* Pod::Usage
|
* Pod::Usage
|
||||||
@@ -35,7 +26,7 @@ Static web page generator for the Hacker Public Radio website.
|
|||||||
* Template::Plugin::HTML::Strip
|
* Template::Plugin::HTML::Strip
|
||||||
* DBI
|
* DBI
|
||||||
* Tie::DBI
|
* Tie::DBI
|
||||||
* DBD::SQLite or DBD::mysql
|
* DBD::SQLite
|
||||||
* Date::Calc
|
* Date::Calc
|
||||||
* Text::CSV_XS
|
* Text::CSV_XS
|
||||||
* HTML::Entities
|
* HTML::Entities
|
||||||
@@ -76,4 +67,6 @@ and add the label "**Feature Request**".
|
|||||||
* gordons
|
* gordons
|
||||||
* Ken Fallon
|
* Ken Fallon
|
||||||
* norrist
|
* norrist
|
||||||
|
* Paul Jewell
|
||||||
|
|
||||||
|
|
||||||
|
@@ -56,19 +56,9 @@ Perl Template Toolkit.
|
|||||||
* SQLite v3.8.3 or greater is recommended. CTE WITH clauses are used in some template queries.
|
* SQLite v3.8.3 or greater is recommended. CTE WITH clauses are used in some template queries.
|
||||||
Must convert WITH clauses to sub-queries when using earlier versions of SQLite.
|
Must convert WITH clauses to sub-queries when using earlier versions of SQLite.
|
||||||
|
|
||||||
With MySQL
|
|
||||||
* Create database hpr_hpr in the MySQL server from HPR dump file.
|
|
||||||
- sudo mysql --host=localhost < hpr.sql
|
|
||||||
* Create a user that will be used by the site-generator.
|
|
||||||
- Suggested username: hpr-generator
|
|
||||||
- CREATE USER 'hpr-generator'@'localhost' IDENTIFIED BY '<password>';
|
|
||||||
* Limit the user's privileges to EXECUTE and SELECT
|
|
||||||
- GRANT SELECT ON hpr_hpr.* TO 'hpr-generator'@'localhost';
|
|
||||||
- GRANT EXECUTE ON `hpr_hpr`.* TO 'hpr-generator'@'localhost';
|
|
||||||
|
|
||||||
Install the needed Perl modules using preferred method (distribution packages, CPAN, etc.)
|
Install the needed Perl modules using preferred method (distribution packages, CPAN, etc.)
|
||||||
* Config::Std
|
* Config::Std
|
||||||
* DBD::SQLite or DBD:mysql
|
* DBD::SQLite
|
||||||
* DBI
|
* DBI
|
||||||
* Data::Dumper
|
* Data::Dumper
|
||||||
* Date::Calc
|
* Date::Calc
|
||||||
|
@@ -872,42 +872,17 @@
|
|||||||
Your audio is completely inaccessible to those who have hearing problems,
|
Your audio is completely inaccessible to those who have hearing problems,
|
||||||
so the only way for your show to be of help to them is if you distill the essence of the show into the show notes.
|
so the only way for your show to be of help to them is if you distill the essence of the show into the show notes.
|
||||||
If you are using a script to prepare your show then include that.</li>
|
If you are using a script to prepare your show then include that.</li>
|
||||||
|
<li><strong>Adding the shownotes</strong>
|
||||||
|
<ul>
|
||||||
|
<li>Add text and use the WYSIWYG editor buttons to add additional formatting</li>
|
||||||
|
<li>Optionally - You can paste in <strong>Rendered</strong> HTML</li>
|
||||||
|
<li><strong>Do not paste un-rendored markup (HTML, Markdown,
|
||||||
|
RestructuredText)</strong> unless your intention is to have un-rendored
|
||||||
|
markup as shownotes.</li>
|
||||||
|
<li>The amount you can enter is restricted to 4000 characters, but you can provide additional show notes if you wish.
|
||||||
|
Please add them to an full_shownotes.html file which you can expect to be served from
|
||||||
|
<!--% absolute_url(baseurl) %-->eps/hpr9999/full_shownotes.html</li>
|
||||||
</ul>
|
</ul>
|
||||||
The amount you can enter is restricted to 4000 characters, but you can provide additional show notes if you wish.
|
|
||||||
Please add them to an full_shownotes.html file which you can expect to be served from
|
|
||||||
<!--% absolute_url(baseurl) %-->eps/hpr9999/full_shownotes.html<br /> <br />
|
|
||||||
<li>
|
|
||||||
If you wish to include text formatting then please use a format that supports it. We accept:
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>HTML5</li>
|
|
||||||
<li>Markdown (standard)</li>
|
|
||||||
<li>Markdown (GitHub flavoured)</li>
|
|
||||||
<li>Markdown (Pandoc flavoured)</li>
|
|
||||||
<li>RestructuredText</li>
|
|
||||||
<li>txt2tags</li>
|
|
||||||
<li>Plain text</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
However please restrict yourself to text unless you are experienced producing valid markdown/HTML5.
|
|
||||||
Regardless of the format you send your shownotes will end up in html5 <article> section,
|
|
||||||
where the header and footer are not available to you. Avoid using <div> or <span>.
|
|
||||||
The inclusion of JavaScript will send your show into quarantine, until an experienced HPR volunteer
|
|
||||||
can be found to debug it.<br />
|
|
||||||
It takes us a lot longer to fix incorrectly formatted shownotes than plain text, so please only create formatted
|
|
||||||
show notes if you know what you are doing and are sure that what you are writing is valid.
|
|
||||||
</li>
|
|
||||||
<li id="shownotes_format"><strong>Show Note Format:</strong> <em>Optional</em><br />
|
|
||||||
Please tell us which format, if any you used when filling in your shownotes.
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://www.w3schools.com/html/default.asp">HTML5</a></li>
|
|
||||||
<li><a href="https://en.wikipedia.org/wiki/Markdown">Markdown (standard)</a></li>
|
|
||||||
<li><a href="https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax">Markdown (GitHub flavoured)</a></li>
|
|
||||||
<li><a href="https://pandoc.org/MANUAL.html#pandocs-markdown">Markdown (Pandoc flavoured)</a></li>
|
|
||||||
<li><a href="https://docutils.sourceforge.io/docs/user/rst/quickstart.html">RestructuredText</a></li>
|
|
||||||
<li>Plain text having no formatting.</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li id="series"><strong>Series:</strong> <em>Optional</em><br />
|
<li id="series"><strong>Series:</strong> <em>Optional</em><br />
|
||||||
Select the <a href="<!--% absolute_url(baseurl) %-->series/index.html">series</a> if any that your show is a part of.
|
Select the <a href="<!--% absolute_url(baseurl) %-->series/index.html">series</a> if any that your show is a part of.
|
||||||
|
@@ -1,62 +0,0 @@
|
|||||||
FROM perl:5.40.1 As base
|
|
||||||
|
|
||||||
LABEL author="sgoti" \
|
|
||||||
email="lyunpaw@gmail.com" \
|
|
||||||
project="Hacker Public Radio" \
|
|
||||||
forge="https://repo.anhonesthost.net/HPR"
|
|
||||||
|
|
||||||
ARG unprivilegedUser="janitor"
|
|
||||||
|
|
||||||
RUN apt update && apt upgrade --yes;
|
|
||||||
|
|
||||||
RUN apt install --no-install-recommends sqlite3 git --yes \
|
|
||||||
&& rm --recursive --force /var/lib/apt/lists/*;
|
|
||||||
|
|
||||||
RUN mkdir --verbose --parent /opt/hpr /tmp/hpr;
|
|
||||||
|
|
||||||
RUN groupadd --system ${unprivilegedUser} \
|
|
||||||
&& useradd --system --no-log-init --gid ${unprivilegedUser} ${unprivilegedUser};
|
|
||||||
|
|
||||||
RUN chown --recursive ${unprivilegedUser}:${unprivilegedUser} /opt/hpr \
|
|
||||||
&& chown --recursive ${unprivilegedUser}:${unprivilegedUser} /tmp/hpr;
|
|
||||||
|
|
||||||
#Bill of particulars.
|
|
||||||
|
|
||||||
##Meta::CPAN (Comprehensive Perl Archive Network)
|
|
||||||
RUN cpanm Config::General \
|
|
||||||
DBD::SQLite \
|
|
||||||
DBI \
|
|
||||||
Data::Dumper \
|
|
||||||
Date::Calc \
|
|
||||||
Date::Parse \
|
|
||||||
DateTime \
|
|
||||||
DateTime::Duration \
|
|
||||||
DateTime::Format::Duration \
|
|
||||||
DateTime::TimeZone \
|
|
||||||
HTML::Entities \
|
|
||||||
JSON \
|
|
||||||
Template \
|
|
||||||
Template::Filters;
|
|
||||||
|
|
||||||
##Included perl core modules (standard library).
|
|
||||||
##Carp
|
|
||||||
##Cwd
|
|
||||||
##Getopt::Long
|
|
||||||
##Pod::Usage
|
|
||||||
##File::Copy
|
|
||||||
|
|
||||||
USER ${unprivilegedUser}
|
|
||||||
|
|
||||||
WORKDIR /opt/hpr
|
|
||||||
|
|
||||||
RUN git clone https://repo.anhonesthost.net/HPR/hpr-tools.git \
|
|
||||||
&& git clone https://repo.anhonesthost.net/HPR/hpr_hub.git \
|
|
||||||
&& git clone https://repo.anhonesthost.net/HPR/hpr_generator.git \
|
|
||||||
&& git clone https://repo.anhonesthost.net/HPR/hpr_documentation.git;
|
|
||||||
|
|
||||||
WORKDIR /opt/hpr/hpr-tools/Community_News/
|
|
||||||
RUN ln --symbolic /opt/hpr/hpr_generator/utils/mysql2sqlite /opt/hpr/hpr-tools/Community_News/mysql2sqlite;
|
|
||||||
RUN ./collect_HPR_database;
|
|
||||||
|
|
||||||
CMD bash;
|
|
||||||
|
|
@@ -1,136 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#License: GPL v3
|
|
||||||
#see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
#Name: button_podman_make_shownotes.sh
|
|
||||||
#Purpose: build/run HPR Container.
|
|
||||||
#Version: beta 0.01
|
|
||||||
#Author: SGOTI (Some Guy On The Internet)
|
|
||||||
#Email: Lyunpaw@gmail.com
|
|
||||||
#Date: 2025-04-19
|
|
||||||
|
|
||||||
#declaration:
|
|
||||||
declare bindir="/usr/bin/"
|
|
||||||
declare podman="${bindir}podman"
|
|
||||||
declare echo="builtin echo -e"
|
|
||||||
declare unprivilegedUser="janitor"
|
|
||||||
declare date="${bindir}date"
|
|
||||||
declare flags
|
|
||||||
declare OPTIND
|
|
||||||
declare -A containerBulidProperties
|
|
||||||
|
|
||||||
declare currentMonth
|
|
||||||
declare nextMonth
|
|
||||||
declare currentYear
|
|
||||||
|
|
||||||
#start:
|
|
||||||
currentMonth=$(${date} +%m)
|
|
||||||
currentYear=$(${date} +%Y)
|
|
||||||
|
|
||||||
if [[ ${currentmonth} -gt 0 ]] && [[ ${currentmonth} -le 11 ]]; then
|
|
||||||
nextMonth="(($(${date} +%m)+01))" #Incomplete: Can return single-digit integer; must be a double-digit integer.
|
|
||||||
else
|
|
||||||
nextMonth="01"
|
|
||||||
fi
|
|
||||||
|
|
||||||
containerBulidProperties=(
|
|
||||||
"containerFile" "/path/to/Containerfile"
|
|
||||||
"hostMountDir01" "path/to/project/directory"
|
|
||||||
"hostMountDir02" "/tmp/"
|
|
||||||
"containerMountDir01" "/opt/hpr/"
|
|
||||||
"containerMountDir02" "/tmp/hpr/"
|
|
||||||
"containerImageTag" "testing:0.1"
|
|
||||||
"pullNewImage" "podman pull docker.io/library/perl"
|
|
||||||
"recordingDate" "$(${date} -d "${currentYear}/${currentMonth}/01")"
|
|
||||||
"recordingTimeStart" "15:00" #TZ: UTC
|
|
||||||
"recordingTimeEnd" "17:00" #TZ: UTC
|
|
||||||
)
|
|
||||||
|
|
||||||
function runHPRContainer () {
|
|
||||||
local makeEmail #Incomplete:
|
|
||||||
makeEmail="./make_email -month=${containerBulidProperties[recordingDate]} -start=15:00 -end=17:00 -out=/tmp/hpr/%semail.txt"
|
|
||||||
local makeShownotes #Incomplete:
|
|
||||||
makeShownotes="/opt/hpr/src/hpr-tools/Community_News/make_shownotes -from=${containerBulidProperties[recordingDate]} -full=/tmp/hpr/%sfull_shownotes.html -mail -comments"
|
|
||||||
|
|
||||||
${podman} run \
|
|
||||||
--mount type=bind,src=${containerBulidProperties[hostMountDir02]},dst=${containerBulidProperties[containerMountDir02]},rw=true \
|
|
||||||
--label="Project"="HPR" \
|
|
||||||
--label="Forge"="https://repo.anhonesthost.net/HPR/" \
|
|
||||||
--interactive \
|
|
||||||
--tty \
|
|
||||||
--rm=true \
|
|
||||||
--privileged=false \
|
|
||||||
--pull="never" \
|
|
||||||
--cgroups=enabled \
|
|
||||||
--cgroupns=private \
|
|
||||||
--uts=private \
|
|
||||||
--pid=private \
|
|
||||||
--memory="32m" \
|
|
||||||
--memory-reservation="16m" \
|
|
||||||
--hostname="hpr" \
|
|
||||||
--name="hpr_project" \
|
|
||||||
--user="${unprivilegedUser}" \
|
|
||||||
${containerBulidProperties[containerImageTag]} bash;
|
|
||||||
unset currentMonth
|
|
||||||
unset currentYear
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
function buildNewContainerImage () {
|
|
||||||
local containerNameAndVersionNumber="hpr_image:5.40.1"
|
|
||||||
if [[ -f "${containerBulidProperties[containerFile]}" ]]; then
|
|
||||||
${echo} "Building new container image...\nThis may take several minutes.\
|
|
||||||
\nThis is a non interactive build process, so you can return when \
|
|
||||||
it's completed.";
|
|
||||||
${podman} build --file="${containerBulidProperties[containerFile]}" --tag="${containerBulidProperties[containerImageTag]}";
|
|
||||||
else
|
|
||||||
${echo} 'Dont forget to assign the ${containerBulidProperties[containerFile]} ;). The Containerfile is needed to build the container image.'
|
|
||||||
fi
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
function help () {
|
|
||||||
${echo} "$0 [-hbpq]\n\t[-h] help\n\t[-b] build new container\n\t[-p] pull new perl image\n\t[-q] quit";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
while getopts 'hbpq' flags; do
|
|
||||||
case "${flags}" in
|
|
||||||
h) help; exit 0;
|
|
||||||
;;
|
|
||||||
|
|
||||||
i) ${echo} "Work in progress... :D"; break;
|
|
||||||
;;
|
|
||||||
|
|
||||||
b) buildNewContainerImage;
|
|
||||||
;;
|
|
||||||
|
|
||||||
p) ${containerBulidProperties[pullNewImage]}; exit 0;
|
|
||||||
;;
|
|
||||||
|
|
||||||
e) ${echo} "Work in progress... :D"; break;
|
|
||||||
;;
|
|
||||||
|
|
||||||
s) ${echo} "Work in progress... :D"; break;
|
|
||||||
;;
|
|
||||||
|
|
||||||
q)
|
|
||||||
${echo} "Quitting script."; break;
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
${echo} "Good Heavens! Wrong input."; help; exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift $((OPTIND-1))
|
|
||||||
|
|
||||||
if [[ -z ${1} ]]; then help; runHPRContainer; fi;
|
|
||||||
|
|
||||||
unset echo
|
|
||||||
unset flags
|
|
||||||
unset podman
|
|
||||||
unset OPTIND
|
|
||||||
unset containerBulidProperties
|
|
||||||
exit 0
|
|
||||||
|
|
@@ -1,73 +1,67 @@
|
|||||||
#!/bin/bash -
|
#!/bin/bash -
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
#
|
#
|
||||||
# FILE: check-dependencies.sh
|
# FILE: check-dependencies.sh
|
||||||
#
|
#
|
||||||
# USAGE: ./check-dependencies.sh
|
# USAGE: ./check-dependencies.sh
|
||||||
#
|
#
|
||||||
# DESCRIPTION: Check that Perl module dependencies for the hpr_generator
|
# DESCRIPTION: Check that Perl module dependencies for the hpr_generator
|
||||||
# are installed.
|
# are installed.
|
||||||
#
|
#
|
||||||
# OPTIONS: ---
|
# OPTIONS: ---
|
||||||
# REQUIREMENTS: ---
|
# REQUIREMENTS: ---
|
||||||
# BUGS: ---
|
# BUGS: ---
|
||||||
# NOTES: ---
|
# NOTES: ---
|
||||||
# AUTHOR: Roan "Rho`n" Horning (roan.horning@gmail.com)
|
# AUTHOR: Roan "Rho`n" Horning (roan.horning@gmail.com)
|
||||||
# ORGANIZATION:
|
# ORGANIZATION:
|
||||||
# CREATED: 09/05/2024 09:55:00 PM
|
# CREATED: 09/05/2024 09:55:00 PM
|
||||||
# REVISION: ---
|
# REVISION: ---
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|
||||||
set -o nounset # Treat unset variables as an error
|
set -o nounset # Treat unset variables as an error
|
||||||
|
|
||||||
#--- FUNCTION ----------------------------------------------------------------
|
#--- FUNCTION ----------------------------------------------------------------
|
||||||
# NAME: is_module_installed
|
# NAME: is_module_installed
|
||||||
# DESCRIPTION: Tests if the supplied module is found on the system
|
# DESCRIPTION: Tests if the supplied module is found on the system
|
||||||
# PARAMETERS: Name of the denpendent Perl module
|
# PARAMETERS: Name of the denpendent Perl module
|
||||||
# RETURNS: 0 if not found, 1 if found
|
# RETURNS: 0 if not found, 1 if found
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
function is_module_installed {
|
function is_module_installed {
|
||||||
HR="----------------------"
|
HR="----------------------"
|
||||||
perl -e "use ${1} "
|
perl -e "use ${1} "
|
||||||
if [ $? -ne 0 ]
|
if [ $? -ne 0 ]; then
|
||||||
then
|
echo ${HR}
|
||||||
echo ${HR}
|
else
|
||||||
else
|
echo "Found module ${1}"
|
||||||
echo "Found module ${1}"
|
echo ${HR}
|
||||||
echo ${HR}
|
fi
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MODULES=( \
|
MODULES=(
|
||||||
"Getopt::Long" \
|
"Getopt::Long"
|
||||||
"Pod::Usage" \
|
"Pod::Usage"
|
||||||
"Config::Std" \
|
"Config::Std"
|
||||||
"Template" \
|
"Template"
|
||||||
"Template::Plugin::File" \
|
"Template::Plugin::File"
|
||||||
"Template::Plugin::DBI" \
|
"Template::Plugin::DBI"
|
||||||
"Template::Plugin::HTML::Strip" \
|
"Template::Plugin::HTML::Strip"
|
||||||
"DBI" \
|
"DBI"
|
||||||
"Tie::DBI" \
|
"Tie::DBI"
|
||||||
"DBD::SQLite" \
|
"DBD::SQLite"
|
||||||
"DBD::mysql" \
|
"Date::Calc"
|
||||||
"Date::Calc" \
|
"Text::CSV_XS"
|
||||||
"Text::CSV_XS" \
|
|
||||||
)
|
)
|
||||||
|
|
||||||
echo "The following modules must be installed for the site-generator to function: "
|
echo "The following modules must be installed for the site-generator to function: "
|
||||||
for module in "${MODULES[@]}"
|
for module in "${MODULES[@]}"; do
|
||||||
do
|
echo "* ${module}"
|
||||||
echo "* ${module}"
|
|
||||||
done
|
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 "Scanning for modules ..."
|
||||||
echo "----------------------"
|
echo "----------------------"
|
||||||
|
|
||||||
for module in "${MODULES[@]}"
|
for module in "${MODULES[@]}"; do
|
||||||
do
|
is_module_installed "${module}"
|
||||||
is_module_installed "${module}"
|
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "Finished scanning."
|
echo "Finished scanning."
|
||||||
|
Reference in New Issue
Block a user