| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | 
							- #!/bin/bash
 
- YELLOW="\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 Rust
 
- if ! rustc --version; then
 
-    printMessage "The Rust programming language is required to compile AppFlowy."
 
-    printMessage "It has not been detected on your system."
 
-    read -p "$(printSuccess "Do you want to install Rust? [y/N]") " installrust
 
-    if [ ${installrust^^} == "Y" ]; then
 
-       printMessage "Installing Rust."
 
-       if ! curl --proto '=https' --tlsv1.2 -sSf https://win.rustup.rs/x86_64 -o rustup-init.exe; then
 
-          printError "Failed to download the Rust installer"
 
-          exit 1
 
-       fi
 
-       start "Rust Installer" rustup-init.exe
 
-       read -p "$(printSuccess "Press enter when Rust installation is done") " isDone
 
-       rm rustup-init.exe
 
-       $USERPROFILE/.cargo/bin/rustup toolchain install stable
 
-       $USERPROFILE/.cargo/bin/rustup default stable
 
-    else
 
-       printMessage "Skipping Rust installation."
 
-    fi
 
- else
 
-    printSuccess "Rust has been detected on your system, so Rust installation has been skipped"
 
- fi
 
- # Enable the flutter stable channel
 
- printMessage "Setting up Flutter"
 
- flutter channel stable
 
- # Add pub cache and cargo to PATH
 
- powershell '[Environment]::SetEnvironmentVariable("PATH", $Env:PATH + ";" + $Env:LOCALAPPDATA + "\Pub\Cache\Bin", [EnvironmentVariableTarget]::User)'
 
- powershell '[Environment]::SetEnvironmentVariable("PATH", $Env:PATH + ";" + $Env:USERPROFILE + "\.cargo\bin", [EnvironmentVariableTarget]::User)'
 
- # Enable linux desktop
 
- flutter config --enable-windows-desktop
 
- # Fix any problems reported by flutter doctor
 
- flutter doctor
 
- # Add the githooks directory to your git configuration
 
- printMessage "Setting up githooks."
 
- git config core.hooksPath .githooks
 
- # Install go-gitlint 
 
- printMessage "Installing go-gitlint."
 
- GOLINT_FILENAME="go-gitlint_1.1.0_windows_x86_64.tar.gz"
 
- if curl --proto '=https' --tlsv1.2 -sSfL https://github.com/llorllale/go-gitlint/releases/download/1.1.0/${GOLINT_FILENAME} -o ${GOLINT_FILENAME}; then
 
-    tar -zxv --directory .githooks/. -f ${GOLINT_FILENAME} gitlint.exe
 
-    rm ${GOLINT_FILENAME}
 
- else
 
-  printError "Failed to install go-gitlint"
 
- fi
 
- # Change to the frontend directory
 
- cd frontend
 
- # Install cargo make
 
- printMessage "Installing cargo-make."
 
- $USERPROFILE/.cargo/bin/cargo install --force cargo-make
 
- # Install duckscript
 
- printMessage "Installing duckscript."
 
- $USERPROFILE/.cargo/bin/cargo install --force duckscript_cli
 
- # Enable vcpkg integration
 
- # Note: Requires admin
 
- printMessage "Setting up vcpkg."
 
- vcpkg integrate install
 
- # Check prerequisites
 
- printMessage "Checking prerequisites."
 
- PATH="$PATH;$LOCALAPPDATA\Pub\Cache\bin" bash -c '$USERPROFILE/.cargo/bin/cargo make flowy_dev'
 
 
  |