wgctl/core/framework/context.sh
Nuno Duque Nunes 290ac24d88 refactor: core directory restructure
- core/framework/: flag.sh, hook.sh, help.sh, command.sh, mixin.sh
- core/app/: wgctl-specific context.sh, json.sh
- core/framework/mixins/: json_output, no_color mixins
- core/core.sh: sources framework/core.sh + app/core.sh
- PYTHONPATH exported in app/core.sh for lib/ module resolution
- command::_load_mixins: uses _FRAMEWORK_DIR for mixin path
2026-05-30 02:50:43 +00:00

35 lines
1.4 KiB
Bash

#!/usr/bin/env bash
# ============================================
# 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/$*"; }