42 lines
1.2 KiB
Bash
42 lines
1.2 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_MODULES="${_CTX_ROOT}/modules"
|
|
_CTX_COMMANDS="${_CTX_ROOT}/commands"
|
|
_CTX_PRESETS="${_CTX_ROOT}/presets"
|
|
_CTX_BLOCKS="${_CTX_ROOT}/blocks"
|
|
_CTX_CLIENTS="/etc/wireguard/clients"
|
|
_CTX_WG="/etc/wireguard"
|
|
|
|
function ctx::root() { echo "$_CTX_ROOT"; }
|
|
function ctx::core() { echo "$_CTX_CORE"; }
|
|
function ctx::modules() { echo "$_CTX_MODULES"; }
|
|
function ctx::commands() { echo "$_CTX_COMMANDS"; }
|
|
function ctx::presets() { echo "$_CTX_PRESETS"; }
|
|
function ctx::blocks() { echo "$_CTX_BLOCKS"; }
|
|
function ctx::clients() { echo "$_CTX_CLIENTS"; }
|
|
function ctx::wg() { echo "$_CTX_WG"; }
|
|
|
|
# ============================================
|
|
# Path Helpers
|
|
# ============================================
|
|
|
|
function ctx::client::path() {
|
|
local IFS="/"
|
|
echo "$_CTX_CLIENTS/$*"
|
|
}
|
|
|
|
function ctx::preset::path() {
|
|
local IFS="/"
|
|
echo "$_CTX_PRESETS/$*"
|
|
}
|
|
|
|
function ctx::block::path() {
|
|
local IFS="/"
|
|
echo "$_CTX_BLOCKS/$*"
|
|
}
|