mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-26 14:54:55 +00:00
- Implemented component schema validation in `component_schema.lua`. - Created metadata schema validation in `metadata_schema.lua`. - Developed structure validation logic in `structure_validator.lua`. - Introduced Lua file validation functions in `lua_validator.lua`. - Added integration tests for validation logic in `validate.test.lua`. - Created unit tests for component, metadata, and structure validation. - Added SVG icon for package representation. - Established a main validation orchestrator in `validate.lua` to coordinate the validation process.
46 lines
1.2 KiB
Bash
46 lines
1.2 KiB
Bash
#!/bin/bash
|
|
# Pre-commit hook to validate package structure
|
|
# Place this in .git/hooks/pre-commit and make it executable
|
|
|
|
# Get the list of modified packages
|
|
MODIFIED_PACKAGES=$(git diff --cached --name-only | grep '^packages/' | cut -d'/' -f2 | sort -u)
|
|
|
|
if [ -z "$MODIFIED_PACKAGES" ]; then
|
|
echo "No package files modified, skipping validation"
|
|
exit 0
|
|
fi
|
|
|
|
echo "🔍 Validating modified packages..."
|
|
FAILED_PACKAGES=""
|
|
TOTAL_PACKAGES=0
|
|
|
|
for PACKAGE in $MODIFIED_PACKAGES; do
|
|
TOTAL_PACKAGES=$((TOTAL_PACKAGES + 1))
|
|
echo ""
|
|
echo "Validating package: $PACKAGE"
|
|
|
|
# Run the validator
|
|
lua packages/package_validator/seed/scripts/cli.lua "$PACKAGE"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
FAILED_PACKAGES="$FAILED_PACKAGES $PACKAGE"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
|
|
if [ -z "$FAILED_PACKAGES" ]; then
|
|
echo "✅ All $TOTAL_PACKAGES package(s) passed validation!"
|
|
exit 0
|
|
else
|
|
echo "❌ Validation failed for package(s):$FAILED_PACKAGES"
|
|
echo ""
|
|
echo "Please fix the validation errors before committing."
|
|
echo "You can run validation manually with:"
|
|
for PACKAGE in $FAILED_PACKAGES; do
|
|
echo " lua packages/package_validator/seed/scripts/cli.lua $PACKAGE --verbose"
|
|
done
|
|
exit 1
|
|
fi
|