add justfile as primary task runner, slim Makefile to CI-only. add styled argparse help formatter, parallel test execution (-j8 default), argparse for test-apps.py. release.py accepts --dryrun alias

This commit is contained in:
Richard Macias
2026-02-27 18:13:17 -06:00
parent cd20e372dc
commit 1b003007ea
6 changed files with 287 additions and 102 deletions

38
justfile Normal file
View File

@@ -0,0 +1,38 @@
import 'utility.just'
[private]
default:
@echo '{{YELLOW}}Tip:{{NORMAL}} Recipes with {{BOLD}}*args{{NORMAL}} accept {{BOLD}}-h{{NORMAL}} for help.'
@just --list
# Interactive CLI to add a new app
[group('CLI Tools')]
add-app:
@python scripts/add-app.py
# Test, validate, normalize, and generate all output files
[group('Release')]
build: test validate normalize generate
# Tag, push, and create a GitHub release
[group('Release')]
release *args:
@python scripts/release.py {{ args }}
# Validate applications.json for errors (structure, regex syntax, source types)
[group('Formatting')]
validate:
@python scripts/validate-json.py src/applications.json
# Normalize key order and add missing defaults in applications.json
[group('Formatting')]
normalize:
@python scripts/normalize-json.py src/applications.json
# Live-test app configs
test *args:
@python scripts/test-apps.py {{ args }}
# Generate output files
generate *args:
@{{ if args == "help" { "just _generate-help" } else if args == "-h" { "just _generate-help" } else if args == "--help" { "just _generate-help" } else if args == "table" { "just _generate-table" } else if args == "readme" { "just _generate-readme" } else if args == "standard" { "just _generate-standard" } else if args == "dual-screen" { "just _generate-dual-screen" } else { "just _generate-all" } }}