[tasks.appflowy-flutter-deps-tools] run_task = { name = ["install_flutter_prerequests"] } [tasks.appflowy-tauri-deps-tools] run_task = { name = ["install_tauri_prerequests"] } [tasks.appflowy-flutter-dev-tools] run_task = { name = ["appflowy-flutter-deps-tools","install_diesel"] } [tasks.appflowy-tauri-dev-tools] run_task = { name = ["appflowy-tauri-deps-tools","install_diesel"] } [tasks.install_windows_deps.windows] dependencies=["check_duckscript_installation", "check_vcpkg", "install_vcpkg_sqlite", "install_rust_vcpkg_cli"] [tasks.check_visual_studio_installation.windows] script = """ output = exec powershell -Command "Get-CimInstance MSFT_VSInstance | select -ExpandProperty Version" stdout = set ${output.stdout} versions = split ${stdout} "\\n" for version in ${versions} pos = last_indexof ${version} . new_str = substring ${version} 0 ${pos} newer = semver_is_newer ${new_str} 16.11.0 if newer goto :ok end end echo "Visual studio 2019 is not installed or version is lower than 16.11.0" exit -1 :ok """ script_runner = "@duckscript" [tasks.check_duckscript_installation.windows] script = """ @echo off @duck -h > nul if %errorlevel% GTR 0 ( echo Please install duckscript at first: cargo install --force duckscript_cli exit -1 ) """ [tasks.check_vcpkg.windows] script = """ ret = which vcpkg if is_empty ${ret} echo "Please install vcpkg on windows at first. Make sure to put it into PATH env var" echo "See: https://github.com/microsoft/vcpkg#quick-start-windows" exit -1 end """ script_runner = "@duckscript" [tasks.install_vcpkg_sqlite.windows] script = """ vcpkg install sqlite3:x64-windows-static-md """ [tasks.install_rust_vcpkg_cli.windows] script = """ exec cargo install vcpkg_cli output = exec vcpkg_cli probe sqlite3 stdout = set ${output.stdout} stderr = set ${output.stderr} ret = indexof ${stdout} "Failed:" assert_eq ${ret} "" ${stdout} """ script_runner = "@duckscript" [tasks.install_diesel] script = """ cargo install diesel_cli --no-default-features --features sqlite """ [tasks.install_diesel.windows] script = """ #https://duredhelfinceleb.github.io/diesel_windows_install_doc/ cargo install diesel_cli --no-default-features --features "sqlite-bundled" """ dependencies = ["check_vcpkg"] [tasks.install_targets.mac] script = """ #rustup target add x86_64-apple-ios #rustup target add x86_64-apple-darwin #rustup target add aarch64-apple-ios rustup target add aarch64-apple-darwin """ [tasks.install_targets.windows] script = """ rustup target add x86_64-pc-windows-msvc """ [tasks.install_targets.linux] script = """ rustup target add x86_64-unknown-linux-gnu """ [tasks.install_tauri_prerequests] dependencies=["install_targets", "install_web_protobuf"] [tasks.install_flutter_prerequests] dependencies=["install_targets", "install_flutter_protobuf"] [tasks.install_flutter_prerequests.windows] dependencies=["install_targets", "install_windows_deps"] [tasks.install_tools] script = """ rustup component add rustfmt cargo install cargo-expand cargo install cargo-watch cargo install cargo-cache cargo install bunyan """ [tasks.install_cocoapods] script = """ # execute "xcode-select --install" before if "extconf.rb failed" error occurs sudo gem install cocoapods """ [tasks.install_rbenv] script = """ brew install rbenv rbenv init rbenv install 2.7.1 rbenv global 2.7.1 # https://github.com/rbenv/rbenv curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash """ [tasks.install_flutter] script = """ ret = which flutter if is_empty ${ret} echo "[❤️] Follow the https://flutter.dev/docs/get-started/install instructions to install the flutter, skip if you already installed." echo "Switch to dev channel with command: flutter channel stable" exit -1 end """ script_runner = "@duckscript" [tasks.enable_git_hook] dependencies=["download_gitlint"] script = """ git config core.hooksPath .githooks """ script_runner = "@duckscript" [tasks.download_gitlint] script = """ GOLINT_FILENAME="go-gitlint_1.1.0_osx_x86_64.tar.gz" curl -L https://github.com/llorllale/go-gitlint/releases/download/1.1.0/${GOLINT_FILENAME} --output ${GOLINT_FILENAME} tar -zxv --directory ../.githooks/. -f ${GOLINT_FILENAME} gitlint rm ${GOLINT_FILENAME} """ [tasks.download_gitlint.linux] script = """ 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} gitlint rm ${GOLINT_FILENAME} """ [tasks.download_gitlint.windows] script = """ 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 echo "Failed to install go-gitlint" fi """