AppFlowy/frontend/scripts/white_label/code_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

72 lines
1.9 KiB
Bash

#!/bin/bash
show_usage() {
echo "Usage: $0 [options]"
echo "Options:"
echo " --company-name Set the custom company name"
echo " --help Show this help message"
echo ""
echo "Example:"
echo " $0 --company-name \"MyCompany Ltd.\""
}
CUSTOM_COMPANY_NAME=""
CODE_FILE="appflowy_flutter/lib/workspace/application/notification/notification_service.dart"
while [[ $# -gt 0 ]]; do
case $1 in
--company-name)
CUSTOM_COMPANY_NAME="$2"
shift 2
;;
--help)
show_usage
exit 0
;;
*)
echo "Unknown option: $1"
show_usage
exit 1
;;
esac
done
if [ -z "$CUSTOM_COMPANY_NAME" ]; then
echo "Error: Company name is required"
show_usage
exit 1
fi
if [ ! -f "$CODE_FILE" ]; then
echo "Error: Code file not found at $CODE_FILE"
exit 1
fi
echo "Replacing '_localNotifierAppName' value with '$CUSTOM_COMPANY_NAME' in code file..."
if sed --version >/dev/null 2>&1; then
SED_INPLACE="-i"
else
SED_INPLACE="-i ''"
fi
echo "Processing code file..."
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
# First, escape any special characters in the company name
ESCAPED_COMPANY_NAME=$(echo "$CUSTOM_COMPANY_NAME" | sed 's/[\/&]/\\&/g')
# Replace the _localNotifierAppName value with the custom company name
sed $SED_INPLACE "s/const _localNotifierAppName = 'AppFlowy'/const _localNotifierAppName = '$ESCAPED_COMPANY_NAME'/" "$CODE_FILE"
if [ $? -ne 0 ]; then
echo "Error: Failed to process $CODE_FILE with sed"
exit 1
fi
else
# For Unix-like systems
sed $SED_INPLACE "s/const _localNotifierAppName = 'AppFlowy'/const _localNotifierAppName = '$CUSTOM_COMPANY_NAME'/" "$CODE_FILE"
if [ $? -ne 0 ]; then
echo "Error: Failed to process $CODE_FILE with sed"
exit 1
fi
fi
echo "Replacement complete!"