46 lines
1.3 KiB
Bash
Executable File
46 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
if [ -z "$1" ]; then
|
|
echo "Error: integration name is not provided" >&2
|
|
exit 1
|
|
fi
|
|
integration=$1
|
|
|
|
integration_path="integrations/$integration"
|
|
if ! integration_def=$(pnpm bp read --work-dir "$integration_path" --json); then
|
|
echo "Error: Failed to read integration definition for \"$integration\". Check the integration for TypeScript errors." >&2
|
|
exit 1
|
|
fi
|
|
|
|
category=$(echo "$integration_def" | jq -r '.attributes.category // empty')
|
|
|
|
valid_categories=(
|
|
"AI Models"
|
|
"Business Operations"
|
|
"CRM & Sales"
|
|
"Communication & Channels"
|
|
"Customer Support"
|
|
"Developer Tools"
|
|
"E-commerce & Payments"
|
|
"File Management"
|
|
"Marketing & Email"
|
|
"Other"
|
|
"Project Management"
|
|
)
|
|
|
|
if [ -z "$category" ]; then
|
|
echo "Integration \"$integration\" is missing the \"category\" attribute in its definition file" >&2
|
|
echo "Valid categories are: $(printf '"%s", ' "${valid_categories[@]}" | sed 's/, $//')" >&2
|
|
exit 1
|
|
fi
|
|
|
|
for valid_category in "${valid_categories[@]}"; do
|
|
if [ "$category" = "$valid_category" ]; then
|
|
echo "Integration \"$integration\" has a valid category: \"$category\""
|
|
exit 0
|
|
fi
|
|
done
|
|
|
|
echo "Integration \"$integration\" has an invalid category: \"$category\"" >&2
|
|
echo "Valid categories are: $(printf '"%s", ' "${valid_categories[@]}" | sed 's/, $//')" >&2
|
|
exit 1
|