iachat/deployment/extract_brand_assets.sh
Gabriel Jablonski c350ba15ec
feat: custom branding (#68)
* feat: add custom branding support with environment variables and asset extraction

* chore: wrap brand assets url in quotes
2025-06-12 22:11:19 -03:00

91 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
set -e
if [ -z "$1" ]; then
echo "Usage: $0 <url to zip file with favicons>. See https://github.com/fazer-ai/chatwoot/blob/main/CUSTOM_BRANDING.md for more info."
exit 1
fi
URL="$1"
TEMP_DIR=$(mktemp -d)
ZIP_FILE="$TEMP_DIR/downloaded_favicons.zip"
EXTRACT_DIR="$TEMP_DIR/extracted_favicons"
TARGET_DIR="public"
EXPECTED_FILES="
android-icon-36x36.png
android-icon-48x48.png
android-icon-72x72.png
android-icon-96x96.png
android-icon-144x144.png
android-icon-192x192.png
apple-icon-57x57.png
apple-icon-60x60.png
apple-icon-72x72.png
apple-icon-76x76.png
apple-icon-114x114.png
apple-icon-120x120.png
apple-icon-144x144.png
apple-icon-152x152.png
apple-icon-180x180.png
apple-icon.png
apple-icon-precomposed.png
apple-touch-icon.png
apple-touch-icon-precomposed.png
favicon-16x16.png
favicon-32x32.png
favicon-96x96.png
favicon-512x512.png
favicon-badge-16x16.png
favicon-badge-32x32.png
favicon-badge-96x96.png
ms-icon-70x70.png
ms-icon-144x144.png
ms-icon-150x150.png
ms-icon-310x310.png
"
cleanup() {
echo "Cleaning up temporary files..."
rm -rf "$TEMP_DIR"
}
trap cleanup EXIT
echo "Downloading zip file from $URL..."
if wget -q -O "$ZIP_FILE" "$URL"; then
echo "Download successful."
else
echo "Error: Failed to download file from $URL"
exit 1
fi
echo "Creating extraction directory: $EXTRACT_DIR"
mkdir -p "$EXTRACT_DIR"
echo "Unzipping $ZIP_FILE to $EXTRACT_DIR..."
if unzip -q "$ZIP_FILE" -d "$EXTRACT_DIR"; then
echo "Unzip successful."
else
echo "Error: Failed to unzip $ZIP_FILE"
exit 1
fi
echo "Checking for expected files..."
MISSING_FILES=0
for filename in $EXPECTED_FILES; do
if ! find "$EXTRACT_DIR" -name "$filename" -print | grep -q .; then
echo "Warning: Expected file '$filename' not found in the zip archive."
MISSING_FILES=$((MISSING_FILES + 1))
fi
done
if [ "$MISSING_FILES" -gt 0 ]; then
echo "$MISSING_FILES expected file(s) were not found in the zip archive."
fi
echo "Moving extracted files to $TARGET_DIR/..."
mv "$EXTRACT_DIR"/* "$TARGET_DIR/" 2>/dev/null || true
echo "Process completed."