Files
site/flow
2025-04-13 22:02:15 -04:00

62 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Flows
source ./flows/base
source ./flows/git
source ./flows/packaging
# Vars
BUILD_DIRECTORY="web"
GITEA_ORGANIZATION="agreego"
GITEA_REPOSITORY="site"
env() {
# Check if GITEA_TOKEN is set
if [ -z "$GITEA_TOKEN" ]; then
# If not set, try to get it from kubectl
GITEA_TOKEN=$(kubectl get secret -n cellular gitea-git -o jsonpath='{.data.token}' | base64 --decode)
if [ -z "$GITEA_TOKEN" ]; then
echo -e "${RED}GITEA_TOKEN is not set and couldn't be retrieved from kubectl${RESET}" >&2
exit 1
fi
export GITEA_TOKEN
fi
echo -e "💰 ${GREEN}Environment variables set${RESET}"
}
build() {
# Create build directory if it doesn't exist
mkdir -p "$PACKAGE_DIRECTORY"
# Get version
local version=$(get-version)
echo -e "📦 ${CYAN}Building site version ${GREEN}v$version${RESET}..."
# Create the tarball
tar -czf "$PACKAGE_DIRECTORY/$GITEA_REPOSITORY.tar.gz" -C "$BUILD_DIRECTORY" .
echo -e "${GREEN}Build complete${RESET}"
}
site-usage() {
echo -e " ${CYAN}Site Commands:${RESET}"
echo -e " prepare Check required OS dependencies (if any are defined)."
echo -e " env Load environment variables from .env file."
echo -e " build Build the site (requires env)."
echo -e " tag Tag the build (requires build)."
echo -e " package Package the build (requires build)."
echo -e " release Release the build (requires package)."
}
site-flow() {
case "$1" in
prepare) base prepare; return 0;;
env) env; return 0;;
build) env; build; return 0;;
tag) env; tag; return 0;;
package) env; package; return 0;;
release) env; release; return 0;;
*) return 1 ;;
esac
}
register-flow "site-flow" "site-usage"
dispatch "$@"