gohugo-theme-ananke/tests/test-site-setup.sh
Patrick Kollitsch 50f980ed0c
tests(wip): testing quick start guide
Signed-off-by: Patrick Kollitsch <patrick@davids-neighbour.com>
2024-10-24 05:36:32 +07:00

97 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# Variables for configuration
HUGO_SITE_DIR="./my-new-site"
HUGO_SITE_NAME="My Test Site"
HUGO_CONTENT_NAME="my-first-post"
HUGO_THEME="ananke"
HUGO_CONFIG_FILE="$HUGO_SITE_DIR/config.toml"
# Help function
function usage() {
echo "Usage: ./hugo_setup_test.sh [--help]"
echo "Automated Hugo setup testing script. Ensure you are running on Ubuntu in a WSL2 environment."
exit 0
}
# Check for --help option
if [[ "$1" == "--help" ]]; then
usage
fi
# Function to check if Hugo is installed
function check_hugo_installed() {
if ! command -v hugo &> /dev/null; then
echo "Error: Hugo is not installed."
exit 1
fi
}
# Function to create a new Hugo site
function create_hugo_site() {
if [ -d "$HUGO_SITE_DIR" ]; then
echo "Error: Directory $HUGO_SITE_DIR already exists. Please remove it before running the test."
exit 1
fi
hugo new site "$HUGO_SITE_DIR"
if [ $? -ne 0 ]; then
echo "Error: Failed to create Hugo site."
exit 1
fi
}
# Function to add a theme
function add_theme() {
cd "$HUGO_SITE_DIR" || exit
git init && git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/$HUGO_THEME
if [ $? -ne 0 ]; then
echo "Error: Failed to add the theme."
exit 1
fi
echo 'theme = "ananke"' >> config.toml
}
# Function to create new content
function create_content() {
hugo new posts/$HUGO_CONTENT_NAME.md
if [ $? -ne 0 ]; then
echo "Error: Failed to create content."
exit 1
fi
}
# Function to verify configuration
function verify_configuration() {
if grep -q 'theme = "ananke"' "$HUGO_CONFIG_FILE"; then
echo "Success: Theme configuration found in $HUGO_CONFIG_FILE"
else
echo "Error: Theme configuration missing from $HUGO_CONFIG_FILE"
exit 1
fi
}
# Function to run the server
function run_hugo_server() {
hugo server &>/dev/null &
SERVER_PID=$!
sleep 3 # Give the server some time to start
if ps -p $SERVER_PID > /dev/null; then
echo "Success: Hugo server started."
kill $SERVER_PID
else
echo "Error: Failed to start the Hugo server."
exit 1
fi
}
# Main execution
check_hugo_installed
create_hugo_site
add_theme
create_content
verify_configuration
run_hugo_server
echo "All tests passed!"
exit 0