AppFlowy/frontend/scripts/white_label/icon_white_label.sh
Lucas a5eb2cdd9a
feat: improve white label scripts on Windows (#7755)
* feat: improve white label scripts on Windows

* feat: add font white label script

* chore: integrate font white label script
2025-04-16 10:15:40 +08:00

98 lines
3.0 KiB
Bash

#!/bin/bash
show_usage() {
echo "Usage: $0 [options]"
echo "Options:"
echo " --icon-path Set the path to the folder containing application icons (.svg files)"
echo " --help Show this help message"
echo ""
echo "Example:"
echo " $0 --icon-path \"/path/to/icons_folder\""
}
NEW_ICON_PATH=""
ICON_DIR="resources/flowy_icons"
ICON_NAME_NEED_REPLACE=("app_logo.svg" "ai_chat_logo.svg" "app_logo_with_text_light.svg" "app_logo_with_text_dark.svg")
while [[ $# -gt 0 ]]; do
case $1 in
--icon-path)
NEW_ICON_PATH="$2"
shift 2
;;
--help)
show_usage
exit 0
;;
*)
echo "Unknown option: $1"
show_usage
exit 1
;;
esac
done
if [ -z "$NEW_ICON_PATH" ]; then
echo "Error: Icon path is required"
show_usage
exit 1
fi
if [ ! -d "$NEW_ICON_PATH" ]; then
echo "Error: New icon directory not found at $NEW_ICON_PATH"
exit 1
fi
if [ ! -d "$ICON_DIR" ]; then
echo "Error: Icon directory not found at $ICON_DIR"
exit 1
fi
echo "Replacing icons..."
echo "Processing icon files..."
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
for subdir in "${ICON_DIR}"/*/; do
if [ -d "$subdir" ]; then
echo "Checking subdirectory: $(basename "$subdir")"
for file in "${subdir}"*.svg; do
if [ -f "$file" ] && [[ " ${ICON_NAME_NEED_REPLACE[@]} " =~ " $(basename "$file") " ]]; then
new_icon="${NEW_ICON_PATH}/$(basename "$file")"
if [ -f "$new_icon" ]; then
echo "Updating: $(basename "$subdir")/$(basename "$file")"
cp "$new_icon" "$file"
if [ $? -eq 0 ]; then
echo "Successfully replaced $(basename "$file") in $(basename "$subdir") with new icon"
else
echo "Error: Failed to replace $(basename "$file") in $(basename "$subdir")"
exit 1
fi
else
echo "Warning: New icon file $(basename "$file") not found in $NEW_ICON_PATH"
fi
fi
done
fi
done
else
for file in $(find "$ICON_DIR" -name "*.svg" -type f); do
if [[ " ${ICON_NAME_NEED_REPLACE[@]} " =~ " $(basename "$file") " ]]; then
new_icon="${NEW_ICON_PATH}/$(basename "$file")"
if [ -f "$new_icon" ]; then
echo "Updating: $(basename "$file")"
cp "$new_icon" "$file"
if [ $? -eq 0 ]; then
echo "Successfully replaced $(basename "$file") with new icon"
else
echo "Error: Failed to replace $(basename "$file")"
exit 1
fi
else
echo "Warning: New icon file $(basename "$file") not found in $NEW_ICON_PATH"
fi
fi
done
fi
echo "Replacement complete!"