#!/usr/bin/env bash set -euo pipefail usage() { cat <&2; usage; exit 1 ;; esac done # Resolve repository root (this script is under funding-roadmap/scripts) SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)" DATE="$(date +%Y%m%d)" PKG_DIR="${DEST}/horizon-submission-${DATE}" echo "Packaging to: ${PKG_DIR}" mkdir -p "${PKG_DIR}/"{common,templates,consortium,diagrams} # Copy core docs for f in "${ROOT_DIR}/VaultMesh_Funding_Roadmap_2025-2027.md" \ "${ROOT_DIR}/DELIVERABLES_COMPLETE.md"; do if [[ -f "$f" ]]; then cp "$f" "${PKG_DIR}/common/" fi done # Templates cp "${ROOT_DIR}/templates/"*.md "${PKG_DIR}/templates/" 2>/dev/null || true # Consortium tracker + README + generated summary cp "${ROOT_DIR}/consortium/consortium-tracker.csv" "${PKG_DIR}/consortium/" cp "${ROOT_DIR}/consortium/README.md" "${PKG_DIR}/consortium/" if command -v python3 >/dev/null 2>&1; then python3 "${ROOT_DIR}/scripts/generate_summary.py" \ --csv "${ROOT_DIR}/consortium/consortium-tracker.csv" \ > "${PKG_DIR}/consortium/consortium-summary.md" else printf "python3 not found; skipping consortium-summary.md\n" >&2 fi # Diagrams (.mmd + README) cp "${ROOT_DIR}/diagrams/"*.mmd "${PKG_DIR}/diagrams/" cp "${ROOT_DIR}/diagrams/README.md" "${PKG_DIR}/diagrams/" # Optional rendering to PNG/SVG if mermaid-cli is present and --render given if [[ "$RENDER" = "1" ]] && command -v mmdc >/dev/null 2>&1; then echo "Rendering diagrams to PNG/SVG via mermaid-cli..." pushd "${PKG_DIR}/diagrams" >/dev/null for file in *.mmd; do base="${file%.mmd}" mmdc -i "$file" -o "${base}.png" -w 3000 -b transparent || true mmdc -i "$file" -o "${base}.svg" || true done popd >/dev/null else if [[ "$RENDER" = "1" ]]; then echo "Note: --render requested but mermaid-cli (mmdc) not found; skipping render." >&2 fi fi # Manifest of file hashes if available if command -v sha256sum >/dev/null 2>&1; then (cd "${PKG_DIR}" && find . -type f -print0 | sort -z | xargs -0 sha256sum) \ > "${PKG_DIR}/MANIFEST.sha256" fi # README for the package cat > "${PKG_DIR}/README.txt" <<'TXT' Horizon Submission Package -------------------------- Contents: - common/ Funding roadmap and deliverables summary - templates/ Letter of Intent + Partner Onboarding 1‑pager - consortium/ Tracker CSV + README + generated consortium-summary.md - diagrams/ Mermaid (.mmd) + README (+ PNG/SVG if rendered) Notes: - Review consortium-summary.md before external sharing (contains contacts/emails). - Render diagrams if needed: install mermaid-cli (mmdc) and re-run with --render. - Archive integrity: see MANIFEST.sha256 (if generated). Coordinator contact: guardian@vaultmesh.org TXT # Optional archive alongside folder case "$ARCHIVE_FMT" in tar) ARCHIVE_PATH="${PKG_DIR}.tar.gz" (cd "${DEST}" && tar czf "$(basename "${ARCHIVE_PATH}")" "$(basename "${PKG_DIR}")") echo "Created archive: ${ARCHIVE_PATH}" ;; zip) if command -v zip >/dev/null 2>&1; then (cd "${DEST}" && zip -qr "$(basename "${PKG_DIR}").zip" "$(basename "${PKG_DIR}")") echo "Created archive: ${PKG_DIR}.zip" else echo "zip not found; skipping .zip archive" >&2 fi ;; esac echo "Package ready: ${PKG_DIR}"