Add build script for my blog
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
This commit is contained in:
commit
b31dafc83d
62
blog.sgorava.xyz.sh
Executable file
62
blog.sgorava.xyz.sh
Executable file
@ -0,0 +1,62 @@
|
||||
#!/bin/sh
|
||||
# Quick and dirty way to build the site
|
||||
|
||||
# Script configuration
|
||||
BUILD_DIR="/tmp/site_builder"
|
||||
TARGET_DIR="/srv/http"
|
||||
SITE_DIR="blog.sgorava.xyz"
|
||||
REPOSITORY_URL="https://git.sgorava.xyz/Websites/blog.sgorava.xyz.git"
|
||||
|
||||
|
||||
# Helper functions
|
||||
function fail {
|
||||
printf '%s\n' "$1" >&2 ## Send message to stderr.
|
||||
exit "${2-1}" ## Return a code specified by $2, or 1 by default.
|
||||
}
|
||||
|
||||
|
||||
# Prepare - Clean and Create temporary directory
|
||||
printf "=== Phase: Prepare ===\n"
|
||||
# Check if variables are set.
|
||||
if [ ${BUILD_DIR:+1} ] && [ ${TARGET_DIR:+1} ] && [ ${SITE_DIR:+1} ] && [ ${REPOSITORY_URL:+1} ]
|
||||
then
|
||||
# Prepare build directory
|
||||
rm -rfv "${BUILD_DIR}/${SITE_DIR}" || fail "Unable to delete build directory."
|
||||
mkdir -pv "${BUILD_DIR}" || fail "Unable to create build directory."
|
||||
# Prepare target directory
|
||||
mkdir -pv "${TARGET_DIR}/${SITE_DIR}" || fail "Unable to create target directory."
|
||||
else
|
||||
printf "One of the configuration variables is not set.\n\n"
|
||||
printf "BUILD_DIR=\"%s\"\n" "${BUILD_DIR}"
|
||||
printf "TARGET_DIR=\"%s\"\n" "${TARGET_DIR}"
|
||||
printf "SITE_DIR=\"%s\"\n" "${SITE_DIR}"
|
||||
printf "REPOSITORY_URL=\"%s\"\n" "${REPOSITORY_URL}"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# Clone the repository
|
||||
printf "=== Phase: Clone ===\n"
|
||||
cd "${BUILD_DIR}" || fail "Unable to change to the build directory."
|
||||
git clone "${REPOSITORY_URL}" "${SITE_DIR}" || fail "Unable to clone the repository."
|
||||
|
||||
|
||||
# Build
|
||||
printf "=== Phase: Build ===\n"
|
||||
cd "${SITE_DIR}" || fail "Unable to change to the repository directory."
|
||||
|
||||
printf "=== Run Openring ===\n"
|
||||
openring -S openring/openring.txt < openring/openring.html > layouts/partials/openring.html || fail "Unable to generate Openring data."
|
||||
|
||||
printf "=== Run hugo ===\n"
|
||||
hugo --cleanDestinationDir --noChmod --buildFuture
|
||||
|
||||
|
||||
# Sync
|
||||
printf "=== Phase: Sync ===\n"
|
||||
rsync -avz --delete "public/" "${TARGET_DIR}/${SITE_DIR}/" || fail "Unable to sync with target directory."
|
||||
|
||||
|
||||
# Clean the vuild directory
|
||||
rm -rf "${BUILD_DIR}/${SITE_DIR}" && printf "=== Done ===\n"
|
Loading…
Reference in New Issue
Block a user