43 lines
820 B
Bash
43 lines
820 B
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
MANIFEST="src/mokowaasbrand.xml"
|
|
|
|
echo "Validating Joomla manifest: $MANIFEST"
|
|
|
|
if [ ! -f "$MANIFEST" ]; then
|
|
echo "ERROR: Manifest not found: $MANIFEST"
|
|
exit 1
|
|
fi
|
|
|
|
# Check XML syntax
|
|
if ! xmllint --noout "$MANIFEST"; then
|
|
echo "ERROR: Manifest XML is not valid."
|
|
exit 1
|
|
fi
|
|
|
|
# Required fields
|
|
REQUIRED_NODES=(
|
|
"//extension"
|
|
"//name"
|
|
"//version"
|
|
"//author"
|
|
"//creationDate"
|
|
)
|
|
|
|
for NODE in "${REQUIRED_NODES[@]}"; do
|
|
if ! xmllint --xpath "$NODE" "$MANIFEST" > /dev/null 2>&1; then
|
|
echo "ERROR: Required manifest node missing: $NODE"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
VERSION=$(xmllint --xpath "string(//version)" "$MANIFEST")
|
|
|
|
if [ -z "$VERSION" ]; then
|
|
echo "ERROR: Version node is empty in manifest."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Manifest OK. Version: $VERSION"
|