72 lines
No EOL
1.8 KiB
Bash
72 lines
No EOL
1.8 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
_CTX_ROOT="$PROJECT_ROOT"
|
|
_CTX_CONTAINER_ROOT="/app"
|
|
_CTX_DXKIT="${_CTX_ROOT}/dxkit"
|
|
_CTX_MODULES="${_CTX_DXKIT}/modules"
|
|
_CTX_COMMANDS="${_CTX_DXKIT}/commands"
|
|
_CTX_TEMPLATES="${_CTX_DXKIT}/templates"
|
|
_CTX_ENV="${_CTX_DXKIT}/env"
|
|
_CTX_PROJECT="${_CTX_ROOT}/.project"
|
|
_CTX_ARTIFACT="${_CTX_PROJECT}/artifacts"
|
|
|
|
# ============================================
|
|
# Wrappers
|
|
# ============================================
|
|
|
|
function ctx::require() {
|
|
local var="$1"
|
|
|
|
[[ -z "${!var}" ]] && {
|
|
echo "Missing required context variable: $var" >&2
|
|
return 1
|
|
}
|
|
}
|
|
|
|
# ============================================
|
|
# Static Context
|
|
# ============================================
|
|
|
|
function ctx::root() { echo "$_CTX_ROOT"; }
|
|
function ctx::dxkit() { echo "$_CTX_DXKIT"; }
|
|
function ctx::modules() { echo "$_CTX_MODULES"; }
|
|
function ctx::commands() { echo "$_CTX_COMMANDS"; }
|
|
function ctx::templates() { echo "$_CTX_TEMPLATES"; }
|
|
function ctx::env() { echo "$_CTX_ENV"; }
|
|
function ctx::project() { echo "$_CTX_PROJECT"; }
|
|
function ctx::artifact() { echo "$_CTX_ARTIFACT"; }
|
|
function ctx::container::root() { echo $_CTX_CONTAINER_ROOT; }
|
|
|
|
# ============================================
|
|
# Derived Context
|
|
# ============================================
|
|
|
|
function ctx::runtime() {
|
|
# ctx::require ENVIRONMENT || return 1
|
|
echo "$(ctx::artifact)/$ENVIRONMENT"
|
|
}
|
|
|
|
function ctx::docker() {
|
|
echo "$(ctx::artifact)/docker"
|
|
}
|
|
|
|
# ============================================
|
|
# Path helpers
|
|
# ============================================
|
|
|
|
function ctx::artifact::path() {
|
|
local IFS="/"
|
|
echo "$(ctx::artifact)/$*"
|
|
}
|
|
|
|
function ctx::container::path() {
|
|
local base="$(ctx::container::root)"
|
|
|
|
if [[ $# -eq 0 ]]; then
|
|
echo "$base"
|
|
return
|
|
fi
|
|
|
|
local IFS="/"
|
|
echo "$base/$*"
|
|
} |