From ce035d918605f6402a62702c12086097bbc557cc Mon Sep 17 00:00:00 2001 From: Frank Agerholm Date: Wed, 4 Dec 2024 21:44:12 +0100 Subject: [PATCH] Add configuration-File support. --- README.md | 10 +++++++++ bin/build.sh | 57 +++++++++++++++++++++++++++++++++++++++++++-------- bin/deploy.sh | 16 +++++++++++++-- 3 files changed, 73 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 966be18..6e109e6 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,16 @@ This image is based on the python:3.11-alpine image and includes additional Python-packages for building nikola-sites. +## Configure your project + +Create a configuration file in your git-repo: `.deployment-helper` + +Configuration-Variables: + +* DEPLOY_HELPER_ENABLE_NIKOLA (default: true) +* DEPLOY_HELPER_ENABLE_NODE (default: false) +* DEPLOY_HELPER_CONTENT_DIR (default: "website/output") + ## lftp for sftp-Uploads This image includes `lftp` to upload files to a sftp-server and use diff --git a/bin/build.sh b/bin/build.sh index 727aa8f..d7f92e1 100644 --- a/bin/build.sh +++ b/bin/build.sh @@ -1,18 +1,59 @@ #!/bin/sh -if ! test -d website +# Default configurations: +DEPLOY_HELPER_ENABLE_NIKOLA=true +DEPLOY_HELPER_ENABLE_NODE=false + +if test -f .deployment-helper then - echo "Website directory not found" - exit 1 + # shellcheck source=/dev/null + . .deployment-helper fi -if ! command -v nikola >/dev/null 2>&1 + + +if $DEPLOY_HELPER_ENABLE_NODE then - echo "nikola command not found" - exit 1 + if ! command -v node >/dev/null 2>&1 + then + echo "node not found" 1>&2 + exit 1 + fi + if ! command -v npm >/dev/null 2>&1 + then + echo "npm not found" 1>&2 + exit 1 + fi + if ! test -d node + then + echo "Node directory not found" 1>&2 + exit 1 + fi + + cd node || { echo 'Directory "node" not found'; exit 1;} + if ! npm install + then + echo "Error installing node-dependencies" 1>&2 + exit 1 + fi + cd .. fi -cd website +if $DEPLOY_HELPER_ENABLE_NIKOLA +then + if ! test -d website + then + echo "Website directory not found" 1>&2 + exit 1 + fi -nikola build + if ! command -v nikola >/dev/null 2>&1 + then + echo "nikola command not found" 1>&2 + exit 1 + fi + cd website || { echo 'Directory "website" not found'; exit 1;} + nikola build + cd .. +fi exit "$?" diff --git a/bin/deploy.sh b/bin/deploy.sh index bdf78f1..154fa0f 100755 --- a/bin/deploy.sh +++ b/bin/deploy.sh @@ -1,7 +1,16 @@ #!/bin/sh +# Default configurations: +DEPLOY_HELPER_CONTENT_DIR="website/output" -if ! test -d website/output +if test -f .deployment-helper +then + # shellcheck source=/dev/null + . .deployment-helper +fi + + +if ! test -d "${DEPLOY_HELPER_CONTENT_DIR}" then echo "Website-Build not found" exit 1 @@ -16,6 +25,9 @@ then fi -lftp -e 'set sftp:auto-confirm yes; mirror -R ./website/output/ ./web/; bye' --env-password -u ${SSH_USER} sftp://${SSH_HOST} +lftp -e "set sftp:auto-confirm yes; mirror -R ${DEPLOY_HELPER_CONTENT_DIR} ./web/; bye" \ + --env-password \ + -u ${SSH_USER} \ + sftp://${SSH_HOST}