dropshell-templates/test_template.sh
2025-05-24 20:43:56 +12:00

97 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
SCRIPT_DIR=$(dirname "$0")
# default config should always work for localhost
function die() {
echo "$1"
exit 1
}
function dashes() {
for ((i=0; i<$1; i++)); do
echo -n "-"
done
echo ""
}
function centerprint() {
# print $1 centered
local width=$2
local padding=$(( (width - ${#1}) / 2 ))
for ((i=0; i<$padding; i++)); do
echo -n " "
done
echo "$1"
}
function title() {
# determine terminal width
TERMINAL_WIDTH=$(tput cols)
echo " "
dashes $TERMINAL_WIDTH
centerprint "$1" $TERMINAL_WIDTH
dashes $TERMINAL_WIDTH
}
# do we have the first argument?
if [ -z "$1" ]; then
echo "Usage: $0 <template>"
exit 1
fi
TEMPLATE=$(basename "$1")
if [ ! -d "$SCRIPT_DIR/$TEMPLATE" ]; then
echo "Local Template $TEMPLATE does not exist"
exit 1
fi
# for now, we need to build and locally install to test the template. Check if it's up to date.
title "Checking template $TEMPLATE"
SERVICE_NAME="test-$TEMPLATE"
title "Destroying old service"
ds destroy localhost $SERVICE_NAME || die "Failed to destroy old service"
title "Creating service"
ds create-service localhost $SERVICE_NAME $TEMPLATE || die "Failed to create service"
title "Installing service"
ds install localhost $SERVICE_NAME || die "Failed to install service"
title "Stopping service"
ds stop localhost $SERVICE_NAME || die "Failed to stop service"
title "Starting service"
ds start localhost $SERVICE_NAME || die "Failed to start service"
title "Listing services"
ds list localhost || die "Failed to list services"
title "Backing up service"
ds backup localhost $SERVICE_NAME || die "Failed to backup service"
title "Restoring service"
ds restore localhost $SERVICE_NAME latest || die "Failed to restore service"
title "Checking status"
ds status localhost $SERVICE_NAME || die "Failed to check status"
title "Nuking service (alias for destroy)"
ds nuke localhost $SERVICE_NAME || die "Failed to nuke service"
title "Listing services"
ds list localhost || die "Failed to list services"
# change to green font
echo -e "\033[32m"
title "ALL TESTS PASSED FOR $TEMPLATE"
echo -e "\033[0m"
echo " "