Files
molecules/scripts/gen_html/gen-iso-html.sh
2018-08-14 16:38:10 +02:00

136 lines
3.8 KiB
Bash

#!/bin/bash
# Author: Geaaru <geaaru@sabayonlinux.org>
SAB_GENHTML_SCRIPTDIR=${0%/*}
SAB_GENHTML_SCRIPT_TEMPL=${SAB_GENHTML_SCRIPT_TEMPL:-${SAB_GENHTML_SCRIPTDIR}/templ+abc.pl}
SAB_GENHTML_COMMONS_ARGS="${SAB_GENHTML_COMMONS_ARGS:---skip .. --skip main.html --skip monthly.html --skip style.css}"
SAB_GENHTML_DUMP_HTML=${SAB_GENHTML_DUMP_HTML:-0}
SAB_GENHTML_REMOVE_ISO=${SAB_GENHTML_REMOVE_ISO:-0}
SAB_GENHTML_REMOVE_OPTS=${SAB_GENHTML_REMOVE_OPTS:--name *.iso*}
error () {
echo "$1"
exit 1
}
help_message () {
echo "
-----------------------------------
Sabayon ISO HTML Generator Pages
-----------------------------------
[--help|-h] Show this message.
[--dir <isodir>] Directory where found ISO
[--type <monthly|daily>] Type of HTML pages to create. Default daily.
[--target <dir>] Target dir where copy HTML pages.
Default is same <isodir> path.
"
exit 0
}
parse_args () {
local short_opts="h"
local long_opts="help dir: type:"
$(set -- $(getopt -u -q -a -o "$short_options" -l "$long_options" -- "$@")) || \
error "Invalid parameters"
SAB_GENHTML_TYPE="daily"
SAB_GENHTML_DIR=""
SAB_GENHTML_TARGET=""
if [ $# -lt 1 ] ; then
help_message
fi
while [ $# -gt 0 ] ; do
case "$1" in
-h|--help)
help_message
;;
--type)
SAB_GENHTML_TYPE=$2
shift
;;
--dir)
SAB_GENHTML_DIR=$2
shift
;;
--target)
SAB_GENHTML_TARGET=$2
shift
;;
*)
error "Unexpected option $1"
;;
esac
shift
done
if [ -z "$SAB_GENHTML_TYPE" ] ; then
SAB_GENHTML_TYPE="daily"
else
if [[ $SAB_GENHTML_TYPE != "daily" && $SAB_GENHTML_TYPE != "monthly" ]] ; then
error "Invalid type! Use daily or monthly."
fi
fi
if [ -z "$SAB_GENHTML_DIR" ] ; then
error "ISO directory parameter not set"
fi
if [ -z "$SAB_GENHTML_TARGET" ] ; then
SAB_GENHTML_TARGET=$SAB_GENHTML_DIR
fi
}
main () {
parse_args "$@"
SAB_GENHTML_TMPOUTPUT=$(mktemp -t ${SAB_GENHTML_TYPE}-XXXXXX.html)
export SAB_GENHTML_TMPOUTPUT
echo "====================================================================="
echo "Prepare to generate ${SAB_GENHTML_TYPE} pages for dir ${SAB_GENHTML_DIR}..."
echo "====================================================================="
if [ $SAB_GENHTML_TYPE == "daily" ] ; then
${SAB_GENHTML_SCRIPT_TEMPL} ${SAB_GENHTML_COMMONS_ARGS} daily \
--template "${SAB_GENHTML_SCRIPTDIR}/daily.tmpl" \
--dir ${SAB_GENHTML_DIR} > ${SAB_GENHTML_TMPOUTPUT} || \
error "Error on generate HTML page"
else
${SAB_GENHTML_SCRIPT_TEMPL} ${SAB_GENHTML_COMMONS_ARGS} main \
--template "${SAB_GENHTML_SCRIPTDIR}/monthly.tmpl" \
--dir ${SAB_GENHTML_DIR} > ${SAB_GENHTML_TMPOUTPUT} || \
error "Error on generate HTML page"
fi
echo "Created correctly file ${SAB_GENHTML_TMPOUTPUT}"
echo "====================================================================="
if [ ${SAB_GENHTML_DUMP_HTML} -eq 1 ] ; then
cat ${SAB_GENHTML_DUMP_HTML}
echo "====================================================================="
fi
# Move generated html page to target dir
mv ${SAB_GENHTML_TMPOUTPUT} ${SAB_GENHTML_TARGET}/${SAB_GENHTML_TYPE}.html || \
error "Error on move file ${SAB_GENHTML_TMPOUTPUT} to ${SAB_GENHTML_TARGET}/${SAB_GENHTML_TYPE}.html"
echo "Copy style.css file to ${SAB_GENHTML_TARGET} dir..."
cp ${SAB_GENHTML_SCRIPTDIR}/style.css ${SAB_GENHTML_TARGET}/ || \
error "Error on copy file style.css to ${SAB_GENHTML_TARGET} directory."
if [ ${SAB_GENHTML_REMOVE_ISO} -eq 1 ] ; then
# Remove ISO files from $SAB_GENHTML_TARGET recursively
find . ${SAB_GENHTML_REMOVE_OPTS} -exec rm -if {} \;
fi
exit 0
}
main "$@"