| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | #!/bin/bashYELLOW="\e[93m"GREEN="\e[32m"RED="\e[31m"ENDCOLOR="\e[0m"printMessage() {    printf "${YELLOW}AppFlowy : $1${ENDCOLOR}\n"}printSuccess() {    printf "${GREEN}AppFlowy : $1${ENDCOLOR}\n"}printError() {    printf "${RED}AppFlowy : $1${ENDCOLOR}\n"}# Note: This script does not install applications which are installed by the package manager. There are too many package managers out there.# Install RustprintMessage "The Rust programming language is required to compile AppFlowy."printMessage "We can install it now if you don't already have it on your system."read -p "$(printSuccess "Do you want to install Rust? [y/N]") " installrustif [ ${installrust^^} == "Y" ]; then    printMessage "Installing Rust."    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh    source $HOME/.cargo/env    rustup toolchain install stable    rustup default stableelse    printMessage "Skipping Rust installation."fiprintMessage "Setting up Flutter"# Get the current Flutter versionFLUTTER_VERSION=$(flutter --version | grep -oP 'Flutter \K\S+')# Check if the current version is 3.7.5if [ "$FLUTTER_VERSION" = "3.7.5" ]; then    echo "Flutter version is already 3.7.5"else    # Get the path to the Flutter SDK    FLUTTER_PATH=$(which flutter)    FLUTTER_PATH=${FLUTTER_PATH%/bin/flutter}    current_dir=$(pwd)    cd $FLUTTER_PATH    # Use git to checkout version 3.7.5 of Flutter    git checkout 3.7.5    # Get back to current working directory    cd "$current_dir"    echo "Switched to Flutter version 3.7.5"fi# Enable linux desktopflutter config --enable-linux-desktop# Fix any problems reported by flutter doctorflutter doctorprintMessage "Installing keybinder-3.0"if command apt-get &>/dev/null; then    sudo apt-get install keybinder-3.0-develif command dnf &>/dev/null; then    sudo dnf install keybinder3-develelse    echo 'Your system is not supported, please install keybinder3 manually.'fi# Add the githooks directory to your git configurationprintMessage "Setting up githooks."git config core.hooksPath .githooks# Install go-gitlintprintMessage "Installing go-gitlint."GOLINT_FILENAME="go-gitlint_1.1.0_linux_x86_64.tar.gz"wget https://github.com/llorllale/go-gitlint/releases/download/1.1.0/${GOLINT_FILENAME}tar -zxv --directory .githooks/. -f ${GOLINT_FILENAME} gitlintrm ${GOLINT_FILENAME}# Change to the frontend directorycd frontend# Install cargo makeprintMessage "Installing cargo-make."cargo install --force cargo-make# Install duckscriptprintMessage "Installing duckscript."cargo install --force duckscript_cli# Check prerequisitesprintMessage "Checking prerequisites."cargo make appflowy-flutter-deps-tools
 |