#!/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) build; return 0;; tag) tag; return 0;; package) env; package; return 0;; release) env; release; return 0;; *) return 1 ;; esac } register-flow "site-flow" "site-usage" dispatch "$@"