context.sh
· 1.4 KiB · Bash
Неформатований
#!/usr/bin/env bash
# core/framework/context.sh
# ============================================
# Static Context — resolved once at source time
# ============================================
_CTX_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
_CTX_CORE="${_CTX_ROOT}/core"
_CTX_FRAMEWORK_CORE="${_CTX_ROOT}/core/framework"
_CTX_APP_CORE="${_CTX_ROOT}/core/app"
_CTX_MODULES="${_CTX_ROOT}/modules"
_CTX_COMMANDS="${_CTX_ROOT}/commands"
echo "ctx::root: $_CTX_ROOT"
echo "ctx::modules: $_CTX_MODULES"
# ============================================
# Accessors
# ============================================
function ctx::root() { echo "$_CTX_ROOT"; }
function ctx::core() { echo "$_CTX_CORE"; }
function ctx::framework() { echo "$_CTX_FRAMEWORK_CORE"; }
function ctx::app() { echo "$_CTX_APP_CORE"; }
function ctx::modules() { echo "$_CTX_MODULES"; }
function ctx::commands() { echo "$_CTX_COMMANDS"; }
# ============================================
# Path Helpers
# ============================================
function ctx::core::path() { local IFS="/"; echo "$_CTX_CORE/$*"; }
function ctx::framework::path() { local IFS="/"; echo "$_CTX_FRAMEWORK_CORE/$*"; }
function ctx::module::path() { local IFS="/"; echo "$_CTX_MODULES/$*"; }
function ctx::command::path() { local IFS="/"; echo "$_CTX_COMMANDS/$*"; }
| 1 | #!/usr/bin/env bash |
| 2 | # core/framework/context.sh |
| 3 | |
| 4 | # ============================================ |
| 5 | # Static Context — resolved once at source time |
| 6 | # ============================================ |
| 7 | |
| 8 | _CTX_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" |
| 9 | _CTX_CORE="${_CTX_ROOT}/core" |
| 10 | _CTX_FRAMEWORK_CORE="${_CTX_ROOT}/core/framework" |
| 11 | _CTX_APP_CORE="${_CTX_ROOT}/core/app" |
| 12 | _CTX_MODULES="${_CTX_ROOT}/modules" |
| 13 | _CTX_COMMANDS="${_CTX_ROOT}/commands" |
| 14 | |
| 15 | echo "ctx::root: $_CTX_ROOT" |
| 16 | echo "ctx::modules: $_CTX_MODULES" |
| 17 | |
| 18 | # ============================================ |
| 19 | # Accessors |
| 20 | # ============================================ |
| 21 | |
| 22 | function ctx::root() { echo "$_CTX_ROOT"; } |
| 23 | function ctx::core() { echo "$_CTX_CORE"; } |
| 24 | function ctx::framework() { echo "$_CTX_FRAMEWORK_CORE"; } |
| 25 | function ctx::app() { echo "$_CTX_APP_CORE"; } |
| 26 | function ctx::modules() { echo "$_CTX_MODULES"; } |
| 27 | function ctx::commands() { echo "$_CTX_COMMANDS"; } |
| 28 | |
| 29 | # ============================================ |
| 30 | # Path Helpers |
| 31 | # ============================================ |
| 32 | |
| 33 | function ctx::core::path() { local IFS="/"; echo "$_CTX_CORE/$*"; } |
| 34 | function ctx::framework::path() { local IFS="/"; echo "$_CTX_FRAMEWORK_CORE/$*"; } |
| 35 | function ctx::module::path() { local IFS="/"; echo "$_CTX_MODULES/$*"; } |
| 36 | function ctx::command::path() { local IFS="/"; echo "$_CTX_COMMANDS/$*"; } |
| 37 |