install_macos.sh 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. YELLOW="\e[93m"
  3. GREEN="\e[32m"
  4. RED="\e[31m"
  5. ENDCOLOR="\e[0m"
  6. printMessage() {
  7. printf "${YELLOW}AppFlowy : $1${ENDCOLOR}\n"
  8. }
  9. printSuccess() {
  10. printf "${GREEN}AppFlowy : $1${ENDCOLOR}\n"
  11. }
  12. printError() {
  13. printf "${RED}AppFlowy : $1${ENDCOLOR}\n"
  14. }
  15. # Install Rust
  16. printMessage "The Rust programming language is required to compile AppFlowy."
  17. printMessage "We can install it now if you don't already have it on your system."
  18. read -p "$(printSuccess "Do you want to install Rust? [y/N]") " installrust
  19. if [[ "${installrust:-N}" == [Yy] ]]; then
  20. printMessage "Installing Rust."
  21. brew install rustup-init
  22. rustup-init -y --default-toolchain=stable
  23. source "$HOME/.cargo/env"
  24. else
  25. printMessage "Skipping Rust installation."
  26. fi
  27. # Install sqllite
  28. printMessage "Installing sqlLite3."
  29. brew install sqlite3
  30. printMessage "Setting up Flutter"
  31. # Get the current Flutter version
  32. FLUTTER_VERSION=$(flutter --version | grep -oE 'Flutter [^ ]+' | grep -oE '[^ ]+$')
  33. # Check if the current version is 3.7.5
  34. if [ "$FLUTTER_VERSION" = "3.7.5" ]; then
  35. echo "Flutter version is already 3.7.5"
  36. else
  37. # Get the path to the Flutter SDK
  38. FLUTTER_PATH=$(which flutter)
  39. FLUTTER_PATH=${FLUTTER_PATH%/bin/flutter}
  40. current_dir=$(pwd)
  41. cd $FLUTTER_PATH
  42. # Use git to checkout version 3.7.5 of Flutter
  43. git checkout 3.7.5
  44. # Get back to current working directory
  45. cd "$current_dir"
  46. echo "Switched to Flutter version 3.7.5"
  47. fi
  48. # Enable linux desktop
  49. flutter config --enable-macos-desktop
  50. # Fix any problems reported by flutter doctor
  51. flutter doctor
  52. # Add the githooks directory to your git configuration
  53. printMessage "Setting up githooks."
  54. git config core.hooksPath .githooks
  55. # Install go-gitlint
  56. printMessage "Installing go-gitlint."
  57. GOLINT_FILENAME="go-gitlint_1.1.0_osx_x86_64.tar.gz"
  58. curl -L https://github.com/llorllale/go-gitlint/releases/download/1.1.0/${GOLINT_FILENAME} --output ${GOLINT_FILENAME}
  59. tar -zxv --directory .githooks/. -f ${GOLINT_FILENAME} gitlint
  60. rm ${GOLINT_FILENAME}
  61. # Change to the frontend directory
  62. cd frontend || exit 1
  63. # Install cargo make
  64. printMessage "Installing cargo-make."
  65. cargo install --force cargo-make
  66. # Install duckscript
  67. printMessage "Installing duckscript."
  68. cargo install --force duckscript_cli
  69. # Check prerequisites
  70. printMessage "Checking prerequisites."
  71. cargo make appflowy-flutter-deps-tools