[tasks.flowy_dev] run_task = { name = ["install_prerequests","install_diesel", "install_protobuf"] } [tasks.install_windows_deps.windows] dependencies=["check_duckscript_installation", "check_visual_studio_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 = """ cargo install diesel_cli --no-default-features --features sqlite """ 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_prerequests] dependencies=["install_targets"] [tasks.install_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_fish] script = """ brew install fish # https://stackoverflow.com/questions/26208231/modifying-path-with-fish-shell # Export the PATH using the command: # set -Ua fish_user_paths the_path_you_want_to_export """ [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"