env.toml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. [tasks.flowy_dev]
  2. run_task = { name = ["install_prerequests","install_diesel"] }
  3. [tasks.install_windows_deps.windows]
  4. dependencies=["check_duckscript_installation", "check_visual_studio_installation", "check_vcpkg", "install_vcpkg_sqlite", "install_rust_vcpkg_cli"]
  5. [tasks.check_visual_studio_installation.windows]
  6. script = """
  7. output = exec powershell -Command "Get-CimInstance MSFT_VSInstance | select -ExpandProperty Version"
  8. stdout = set ${output.stdout}
  9. pos = last_indexof ${stdout} .
  10. new_str = substring ${stdout} 0 ${pos}
  11. # TODO: will raise error if there are more than 1 visual studio installation
  12. newer = semver_is_newer ${new_str} 16.11.0
  13. assert ${newer} "Visual studio 2019 is not installed or version is lower than 16.11.0"
  14. """
  15. script_runner = "@duckscript"
  16. [tasks.check_duckscript_installation.windows]
  17. script = """
  18. @echo off
  19. @duck -h > nul
  20. if %errorlevel% GTR 0 (
  21. echo Please install duckscript at first: cargo install --force duckscript_cli
  22. exit -1
  23. )
  24. """
  25. [tasks.check_vcpkg.windows]
  26. script = """
  27. ret = which vcpkg
  28. if is_empty ${ret}
  29. echo "Please install vcpkg on windows at first. Make sure to put it into PATH env var"
  30. echo "See: https://github.com/microsoft/vcpkg#quick-start-windows"
  31. exit -1
  32. end
  33. """
  34. script_runner = "@duckscript"
  35. [tasks.install_vcpkg_sqlite.windows]
  36. script = """
  37. vcpkg install sqlite3:x64-windows-static-md
  38. """
  39. [tasks.install_rust_vcpkg_cli.windows]
  40. script = """
  41. exec cargo install vcpkg_cli
  42. output = exec vcpkg_cli probe sqlite3
  43. stdout = set ${output.stdout}
  44. stderr = set ${output.stderr}
  45. ret = indexof ${stdout} "Failed:"
  46. assert_eq ${ret} "" ${stdout}
  47. """
  48. script_runner = "@duckscript"
  49. [tasks.install_diesel]
  50. script = """
  51. cargo install diesel_cli --no-default-features --features sqlite
  52. """
  53. [tasks.install_diesel.windows]
  54. script = """
  55. cargo install diesel_cli --no-default-features --features sqlite
  56. """
  57. dependencies = ["check_vcpkg"]
  58. [tasks.install_targets]
  59. script = """
  60. # TODO: download the targets with corresponding platform. For example:
  61. # It's not necessary to download aarch64-apple-ios when compiling the Flowy-SDK on windows.
  62. rustup target add x86_64-apple-ios
  63. rustup target add x86_64-apple-darwin
  64. rustup target add aarch64-apple-ios
  65. rustup target add aarch64-apple-darwin
  66. rustup target add x86_64-pc-windows-msvc
  67. rustup target add x86_64-unknown-linux-gnu
  68. """
  69. [tasks.install_prerequests]
  70. dependencies=["install_targets"]
  71. [tasks.install_prerequests.windows]
  72. dependencies=["install_targets", "install_windows_deps"]
  73. [tasks.install_protobuf]
  74. script = """
  75. # Custom dart:
  76. #brew tap dart-lang/dart
  77. #brew install dart
  78. #pub global activate protoc_plugin
  79. #https://pub.dev/packages/protoc_plugin
  80. dart pub global activate protoc_plugin
  81. cargo install --version 2.22.1 protobuf-codegen
  82. """
  83. [tasks.install_protobuf.windows]
  84. script = """
  85. ret = which dart
  86. if is_empty ${ret}
  87. echo Please make sure flutter/dart is properly installed and in PATH env var
  88. exit -1
  89. end
  90. ret = which protoc-gen-dart
  91. if is_empty ${ret}
  92. exec cmd.exe /c dart pub global activate protoc_plugin
  93. home_dir = get_home_dir
  94. echo Please add '${home_dir}\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\bin' into PATH env var
  95. exit -1
  96. end
  97. exec cargo install --version 2.22.1 protobuf-codegen
  98. """
  99. script_runner = "@duckscript"
  100. [tasks.install_tools]
  101. script = """
  102. rustup component add rustfmt
  103. cargo install cargo-expand
  104. cargo install cargo-watch
  105. cargo install cargo-cache
  106. cargo install bunyan
  107. """
  108. [tasks.install_cocoapods]
  109. script = """
  110. # execute "xcode-select --install" before if "extconf.rb failed" error occurs
  111. sudo gem install cocoapods
  112. """
  113. [tasks.install_rbenv]
  114. script = """
  115. brew install rbenv
  116. rbenv init
  117. rbenv install 2.7.1
  118. rbenv global 2.7.1
  119. # https://github.com/rbenv/rbenv
  120. curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
  121. """
  122. [tasks.install_fish]
  123. script = """
  124. brew install fish
  125. # https://stackoverflow.com/questions/26208231/modifying-path-with-fish-shell
  126. # Export the PATH using the command:
  127. # set -Ua fish_user_paths the_path_you_want_to_export
  128. """
  129. [tasks.install_flutter]
  130. script = """
  131. ret = which flutter
  132. if is_empty ${ret}
  133. echo "[❤️] Follow the https://flutter.dev/docs/get-started/install instructions to install the flutter, skip if you already installed."
  134. echo "Switch to dev channel with command: flutter channel dev"
  135. exit -1
  136. end
  137. """
  138. script_runner = "@duckscript"