mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-11-03 19:43:52 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/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'
 |