-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJustfile
More file actions
134 lines (110 loc) · 4.57 KB
/
Justfile
File metadata and controls
134 lines (110 loc) · 4.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# SPDX-License-Identifier: PMPL-1.0-or-later
# Justfile - hyperpolymath standard task runner
default:
@just --list
# Build the project
build:
@echo "Building..."
# Run tests
test:
@echo "Testing..."
# Run lints
lint:
@echo "Linting..."
# Clean build artifacts
clean:
@echo "Cleaning..."
# Format code
fmt:
@echo "Formatting..."
# Run all checks
check: lint test
# Prepare a release
release VERSION:
@echo "Releasing {{VERSION}}..."
# ============================================================
# OPSM — native package management for nextgen-languages
# ============================================================
# Install all workspace dependencies via OPSM
deps:
@command -v opsm >/dev/null 2>&1 || (echo "OPSM not found — install from https://github.com/hyperpolymath/odds-and-sods-package-manager" && exit 1)
opsm install --workspace
# Install pinned tool versions from [runtime] section in opsm.toml
runtime-install:
@command -v opsm >/dev/null 2>&1 || (echo "OPSM not found" && exit 1)
opsm runtime install --from opsm.toml
# Publish all workspace members to the Hyperpolymath Forge Registry
publish:
@command -v opsm >/dev/null 2>&1 || (echo "OPSM not found" && exit 1)
opsm publish --workspace --registry hf
# Search OPSM for a package across all nextgen-languages registries
search QUERY:
@command -v opsm >/dev/null 2>&1 || (echo "OPSM not found" && exit 1)
opsm search "{{QUERY}}" --registry hf
# List installed OPSM runtime tools
runtime-list:
@command -v opsm >/dev/null 2>&1 || (echo "OPSM not found" && exit 1)
opsm runtime list
# Audit workspace packages (license + sustainability)
audit:
@command -v opsm >/dev/null 2>&1 || (echo "OPSM not found" && exit 1)
opsm audit --workspace
# Run panic-attacker pre-commit scan
assail:
@command -v panic-attack >/dev/null 2>&1 && panic-attack assail . || echo "panic-attack not found — install from https://github.com/hyperpolymath/panic-attacker"
# Self-diagnostic — checks dependencies, permissions, paths
doctor:
@echo "Running diagnostics for nextgen-languages..."
@echo "Checking required tools..."
@command -v just >/dev/null 2>&1 && echo " [OK] just" || echo " [FAIL] just not found"
@command -v git >/dev/null 2>&1 && echo " [OK] git" || echo " [FAIL] git not found"
@echo "Checking for hardcoded paths..."
@grep -rn '$HOME\|$ECLIPSE_DIR' --include='*.rs' --include='*.ex' --include='*.res' --include='*.gleam' --include='*.sh' . 2>/dev/null | head -5 || echo " [OK] No hardcoded paths"
@echo "Diagnostics complete."
# Auto-repair common issues
heal:
@echo "Attempting auto-repair for nextgen-languages..."
@echo "Fixing permissions..."
@find . -name "*.sh" -exec chmod +x {} \; 2>/dev/null || true
@echo "Cleaning stale caches..."
@rm -rf .cache/stale 2>/dev/null || true
@echo "Repair complete."
# Guided tour of key features
tour:
@echo "=== nextgen-languages Tour ==="
@echo ""
@echo "1. Project structure:"
@ls -la
@echo ""
@echo "2. Available commands: just --list"
@echo ""
@echo "3. Read README.adoc for full overview"
@echo "4. Read EXPLAINME.adoc for architecture decisions"
@echo "5. Run 'just doctor' to check your setup"
@echo ""
@echo "Tour complete! Try 'just --list' to see all available commands."
# Open feedback channel with diagnostic context
help-me:
@echo "=== nextgen-languages Help ==="
@echo "Platform: $(uname -s) $(uname -m)"
@echo "Shell: $SHELL"
@echo ""
@echo "To report an issue:"
@echo " https://github.com/hyperpolymath/nextgen-languages/issues/new"
@echo ""
@echo "Include the output of 'just doctor' in your report."
# Print the current CRG grade (reads from READINESS.md '**Current Grade:** X' line)
crg-grade:
@grade=$$(grep -oP '(?<=\*\*Current Grade:\*\* )[A-FX]' READINESS.md 2>/dev/null | head -1); \
[ -z "$$grade" ] && grade="X"; \
echo "$$grade"
# Generate a shields.io badge markdown for the current CRG grade
# Looks for '**Current Grade:** X' in READINESS.md; falls back to X
crg-badge:
@grade=$$(grep -oP '(?<=\*\*Current Grade:\*\* )[A-FX]' READINESS.md 2>/dev/null | head -1); \
[ -z "$$grade" ] && grade="X"; \
case "$$grade" in \
A) color="brightgreen" ;; B) color="green" ;; C) color="yellow" ;; \
D) color="orange" ;; E) color="red" ;; F) color="critical" ;; \
*) color="lightgrey" ;; esac; \
echo "[](https://github.com/hyperpolymath/standards/tree/main/component-readiness-grades)"