https://github.com/jdx/chim
Cross-platform binary shims with optional remote fetching.
https://github.com/jdx/chim
cli
Last synced: about 1 year ago
JSON representation
Cross-platform binary shims with optional remote fetching.
- Host: GitHub
- URL: https://github.com/jdx/chim
- Owner: jdx
- License: mit
- Archived: true
- Created: 2022-09-02T14:27:33.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-06-26T16:07:20.000Z (almost 3 years ago)
- Last Synced: 2024-10-13T11:58:21.069Z (over 1 year ago)
- Topics: cli
- Language: Rust
- Homepage: https://chim.sh
- Size: 10.7 MB
- Stars: 32
- Watchers: 2
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [chim](https://chim.sh/)
[](https://crates.io/crates/chim)
[](https://github.com/jdxcode/chim/actions/workflows/chim.yml)
[](https://codecov.io/gh/jdxcode/chim)
_Cross-platform binary shims with optional remote fetching._
## Quickstart (make an automatic fetching node.js wrapper)
Install chim: (see docs for [alternate install methods](https://chim.sh/docs/installing/))
```
$ cargo install chim
$ chim --version
chim 1.1.1
```
Create a chim in `./bin/node`:
```toml
#!/usr/bin/env chim
[macos-arm64]
url = 'https://nodejs.org/dist/v18.7.0/node-v18.7.0-darwin-arm64.tar.xz'
path = 'node-v18.7.0-darwin-arm64/bin/node'
checksum = 'ef593cbb3a3f0aae9879b74a7850d794abab26178aa5e0f67ff182894811e6f0'
[linux-x64]
url = 'https://nodejs.org/dist/v18.7.0/node-v18.7.0-linux-x64.tar.xz'
path = 'node-v18.7.0-linux-x64/bin/node'
checksum = '8bc6a1b9deaed2586d726fc62d4bee9c1bfc5a30b96c1c4cff7edd15225a11a2'
[windows-x64]
url = 'https://nodejs.org/dist/v18.7.0/node-v18.7.0-win-x64.zip'
path = 'node-v18.7.0-win-x64\node.exe'
checksum = '9c0abfe32291dd5bed717463cb3590004289f03ab66011e383daa0fcec674683'
```
Now make it executable and run it:
```
$ chmod +x ./bin/node
$ ./bin/node -v
v18.7.0
```
The tarball is fetched once from nodejs.org, extracted into a cache directory, then reused on future `./bin/node` calls.
## What am I supposed to do with this?
Commit a set of chims into a `/bin` directory in your project's repo. Other people can just add this directory to their
`$PATH` and won't have to manually install each utility. Also run the chims in CI/CD so you have dev/prod parity with
your tools!
## See also
* [chim.sh](https://chim.sh/) - the documentation website
* [GitHub (jdxcode/chim)](https://github.com/jdxcode/chim) - the repository
* [GitHub (jdxcode/chim.sh)](https://github.com/jdxcode/chim.sh) - the repository for the documentation
* [GitHub Discussions](https://github.com/jdxcode/chim/discussions) - message board for chim
* [GitHub Releases (Changelog)](https://github.com/jdxcode/chim/releases) - see the latest releases
* [Homebrew Formula](https://github.com/jdxcode/homebrew-tap/blob/main/chim.rb) - the Homebrew formula
* [Crates.io (chim)](https://crates.io/crates/chim) - the crate on crates.io
* [Discord](https://discord.gg/j3KUQj5HsN) - the chim discord server
* [Introductory blog post](https://jdxcode.com/posts/2022-09-04-introducing-chim/) - a blog post introducing chim