Last active 1 month ago

nuno revised this gist 1 month ago. Go to revision

1 file changed, 30 insertions

gistfile1.txt(file created)

@@ -0,0 +1,30 @@
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 + }
Newer Older