61 lines
2.3 KiB
Makefile
61 lines
2.3 KiB
Makefile
# =============================================================================
|
|
# Knowledge Genome - Makefile v. 1.0.0
|
|
# Orchestrates the setup and management of the knowledge base.
|
|
# =============================================================================
|
|
|
|
include globals.env
|
|
export $(shell grep -v '^[#[:space:]]' globals.env | sed 's/=.*//')
|
|
|
|
.PHONY: setup add-genome status lint lock doctor sync help
|
|
|
|
help:
|
|
@echo "Available commands:"
|
|
@echo " make setup - Full system initialization"
|
|
@echo " make add-genome - Register and scaffold a new genome"
|
|
@echo " make status - Check submodule and encryption status"
|
|
@echo " make lint - Verify schema, privacy flags, and metadata"
|
|
@echo " make lock - Lock all encrypted files across all genomes"
|
|
@echo " make doctor - Verify all required tools are installed"
|
|
@echo " make sync - Sync submodules and report unpushed commits"
|
|
|
|
lint:
|
|
@bash scripts/lint-genomes.sh
|
|
|
|
setup:
|
|
@bash scripts/setup.sh
|
|
|
|
add-genome:
|
|
@if [ -z "$(NAME)" ] || [ -z "$(DESC)" ]; then \
|
|
echo "Error: NAME and DESC are required."; \
|
|
echo "Usage: make add-genome NAME=my-genome DESC='My description'"; \
|
|
exit 1; \
|
|
fi
|
|
@bash scripts/add-genome.sh "$(NAME)" "$(DESC)"
|
|
|
|
status:
|
|
@echo "--- Master Status ---"
|
|
@git submodule status
|
|
@echo "--- Encryption Status (First 10 files) ---"
|
|
@git-crypt status | head -n 10
|
|
|
|
doctor:
|
|
@echo "Checking required tools..."
|
|
@command -v git >/dev/null 2>&1 || { echo " MISSING: git"; exit 1; }
|
|
@command -v git-crypt >/dev/null 2>&1 || { echo " MISSING: git-crypt"; exit 1; }
|
|
@command -v curl >/dev/null 2>&1 || { echo " MISSING: curl"; exit 1; }
|
|
@command -v jq >/dev/null 2>&1 || { echo " MISSING: jq"; exit 1; }
|
|
@command -v bw >/dev/null 2>&1 || echo " OPTIONAL: bw (Bitwarden CLI) not found — key injection will be manual."
|
|
@echo "System ready."
|
|
|
|
sync:
|
|
@echo "Syncing submodules..."
|
|
@git submodule update --init --recursive
|
|
@echo "--- Unpushed commits per genome ---"
|
|
@git submodule foreach 'git log --oneline @{u}.. 2>/dev/null | head -5 || true'
|
|
|
|
lock:
|
|
@echo "Locking master repository..."
|
|
@git-crypt lock 2>/dev/null || true
|
|
@echo "Locking all submodules..."
|
|
@git submodule foreach 'git-crypt lock 2>/dev/null || true'
|
|
@echo "All genomes securely locked."
|