diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aca5e80b0..27ab8e947 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,6 +32,7 @@ jobs: # When adding a new `target`: # 1. Define a new platform alias above # 2. Add a new record to the matrix map in `crates/cli/npm/install.js` + # 3. Consider adding the mapping at the end of 'crates/cli/Cargo.toml' for cargo-binstall support - { platform: linux-arm64 , target: aarch64-unknown-linux-gnu , os: ubuntu-24.04-arm } - { platform: linux-arm , target: armv7-unknown-linux-gnueabihf , os: ubuntu-24.04-arm } - { platform: linux-x64 , target: x86_64-unknown-linux-gnu , os: ubuntu-24.04 } diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index bb6d8e88f..48e32aea2 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -81,3 +81,36 @@ tree_sitter_proc_macro = { path = "src/tests/proc_macro", package = "tree-sitter tempfile.workspace = true pretty_assertions.workspace = true unindent.workspace = true + +[package.metadata.binstall] +pkg-fmt = "zip" + +[package.metadata.binstall.overrides.aarch64-unknown-linux-gnu] +pkg-url = "{ repo }/releases/download/v{ version }/{ name }-linux-arm64{ archive-suffix }" + +[package.metadata.binstall.overrides.armv7-unknown-linux-gnueabihf] +pkg-url = "{ repo }/releases/download/v{ version }/{ name }-linux-arm{ archive-suffix }" + +[package.metadata.binstall.overrides.x86_64-unknown-linux-gnu] +pkg-url = "{ repo }/releases/download/v{ version }/{ name }-linux-x64{ archive-suffix }" + +[package.metadata.binstall.overrides.i686-unknown-linux-gnu] +pkg-url = "{ repo }/releases/download/v{ version }/{ name }-linux-x86{ archive-suffix }" + +[package.metadata.binstall.overrides.powerpc64-unknown-linux-gnu] +pkg-url = "{ repo }/releases/download/v{ version }/{ name }-linux-powerpc64{ archive-suffix }" + +[package.metadata.binstall.overrides.aarch64-pc-windows-msvc] +pkg-url = "{ repo }/releases/download/v{ version }/{ name }-windows-arm64{ archive-suffix }" + +[package.metadata.binstall.overrides.x86_64-pc-windows-msvc] +pkg-url = "{ repo }/releases/download/v{ version }/{ name }-windows-x64{ archive-suffix }" + +[package.metadata.binstall.overrides.i686-pc-windows-msvc] +pkg-url = "{ repo }/releases/download/v{ version }/{ name }-windows-x86{ archive-suffix }" + +[package.metadata.binstall.overrides.aarch64-apple-darwin] +pkg-url = "{ repo }/releases/download/v{ version }/{ name }-macos-arm64{ archive-suffix }" + +[package.metadata.binstall.overrides.x86_64-apple-darwin] +pkg-url = "{ repo }/releases/download/v{ version }/{ name }-macos-x64{ archive-suffix }" diff --git a/crates/cli/README.md b/crates/cli/README.md index 5a399f083..2e203031d 100644 --- a/crates/cli/README.md +++ b/crates/cli/README.md @@ -11,16 +11,15 @@ The Tree-sitter CLI allows you to develop, test, and use Tree-sitter grammars fr ### Installation -You can install the `tree-sitter-cli` with `cargo`: +You can install the `tree-sitter-cli` with `cargo-binstall`: ```sh -cargo install --locked tree-sitter-cli +cargo binstall tree-sitter-cli ``` -or with `npm`: - +or you can build it from source: ```sh -npm install tree-sitter-cli +cargo install --locked tree-sitter-cli ``` You can also download a pre-built binary for your platform from [the releases page].