62 lines
1.7 KiB
Bash
Executable File
62 lines
1.7 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) 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 "$@" |