gistfile1.txt
· 720 B · Text
Неформатований
# ============================================
# Rule File Parsing
# ============================================
function rule::is_base() {
local name="${1:-}"
[[ -f "$(ctx::rules::base)/${name}.rule" ]]
}
function rule::exists() {
local name="${1:-}"
[[ -f "$(ctx::rule::path "${name}.rule")" ]] || \
[[ -f "$(ctx::rules::base)/${name}.rule" ]]
}
function rule::require_assignable() {
local name="${1:-}"
if rule::is_base "$name"; then
log::error "Cannot assign base rule '${name}' — base rules cannot be assigned directly"
return 1
fi
}
function rule::require_exists() {
local name="${1:-}"
if ! rule::exists "$name"; then
log::error "Rule not found: ${name}"
return 1
fi
}
| 1 | # ============================================ |
| 2 | # Rule File Parsing |
| 3 | # ============================================ |
| 4 | |
| 5 | function rule::is_base() { |
| 6 | local name="${1:-}" |
| 7 | [[ -f "$(ctx::rules::base)/${name}.rule" ]] |
| 8 | } |
| 9 | |
| 10 | function rule::exists() { |
| 11 | local name="${1:-}" |
| 12 | [[ -f "$(ctx::rule::path "${name}.rule")" ]] || \ |
| 13 | [[ -f "$(ctx::rules::base)/${name}.rule" ]] |
| 14 | } |
| 15 | |
| 16 | function rule::require_assignable() { |
| 17 | local name="${1:-}" |
| 18 | if rule::is_base "$name"; then |
| 19 | log::error "Cannot assign base rule '${name}' — base rules cannot be assigned directly" |
| 20 | return 1 |
| 21 | fi |
| 22 | } |
| 23 | |
| 24 | function rule::require_exists() { |
| 25 | local name="${1:-}" |
| 26 | if ! rule::exists "$name"; then |
| 27 | log::error "Rule not found: ${name}" |
| 28 | return 1 |
| 29 | fi |
| 30 | } |