drone-hugo/drone-hugo.sh

61 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# Author: Christian Bargmann <chris@cbrgm.de>
set -e
# Assign default variables if not set
PLUGIN_VERSION=${PLUGIN_VERSION:-"false"}
PLUGIN_BUILDDRAFTS=${PLUGIN_BUILDDRAFTS:-"false"}
PLUGIN_BUILDEXPIRED=${PLUGIN_BUILDEXPIRED:-"false"}
PLUGIN_BUILDFUTURE=${PLUGIN_BUILDFUTURE:-"false"}
PLUGIN_CONFIG=${PLUGIN_CONFIG:-"false"}
PLUGIN_CONTENT=${PLUGIN_CONTENT:-"false"}
PLUGIN_LAYOUT=${PLUGIN_LAYOUT:-"false"}
PLUGIN_OUTPUT=${PLUGIN_OUTPUT:-"false"}
PLUGIN_SOURCE=${PLUGIN_SOURCE:-"false"}
PLUGIN_THEME=${PLUGIN_THEME:-"false"}
PLUGIN_URL=${PLUGIN_URL:-"false"}
PLUGIN_VALIDATE=${PLUGIN_VALIDATE:-"false"}
# The hugo command
HUGO_COMMAND="hugo"
function addArgument {
echo $1
HUGO_COMMAND="${HUGO_COMMAND} $1"
}
# Download hugo binary if version attribute is set. When not set, use the one shipped binary inside container
if [[ $PLUGIN_VERSION != "false" ]] ; then
echo "Downloading hugo version v${PLUGIN_VERSION}..."
mkdir /temp/
wget -qO- https://github.com/gohugoio/hugo/releases/download/v${PLUGIN_VERSION}/hugo_${PLUGIN_VERSION}_Linux-64bit.tar.gz | tar xz -C /temp/
mv /temp/hugo /bin/hugo
rm -rf /temp
echo "Using hugo v${PLUGIN_VERSION}..."
fi
# Validate config file
if [[ $PLUGIN_VALIDATE = true ]]; then
if [[ $PLUGIN_CONFIG != "false" ]]; then
echo "Checking config file ${PLUGIN_CONFIG}..."
hugo check --config ${PLUGIN_CONFIG}
else
hugo check
fi
fi
# Create hugo command from arguments
if [[ $PLUGIN_BUILDDRAFTS != "false" ]] ; then addArgument "-D" ; fi
if [[ $PLUGIN_BUILDEXPIRED != "false" ]] ; then addArgument "-E" ; fi
if [[ $PLUGIN_BUILDFUTURE != "false" ]] ; then addArgument "-F" ; fi
if [[ $PLUGIN_CONFIG != "false" ]] ; then addArgument "--config ${PLUGIN_CONFIG}" ; fi
if [[ $PLUGIN_CONTENT != "false" ]] ; then addArgument "--contentDir ${PLUGIN_CONFIG}" ; fi
if [[ $PLUGIN_LAYOUT != "false" ]] ; then addArgument "--layoutDir ${PLUGIN_LAYOUT}" ; fi
if [[ $PLUGIN_OUTPUT != "false" ]] ; then addArgument "--destination ${PLUGIN_OUTPUT}" ; fi
if [[ $PLUGIN_SOURCE != "false" ]] ; then addArgument "--source ${PLUGIN_SOURCE}" ; fi
if [[ $PLUGIN_THEME != "false" ]] ; then addArgument "--theme ${PLUGIN_THEME}" ; fi
if [[ $PLUGIN_URL != "false" ]] ; then addArgument "--baseURL ${PLUGIN_URL}" ; fi
echo "Executing: ${HUGO_COMMAND}"
$HUGO_COMMAND