casey / just
git clone https://github.com/casey/just.git
1.59.0 · 7d ago
🤖 Just a command runner
+5
stars, 24h · #2,956
+~35
stars, 7 days · #3,584
+~150
stars, 30 days · #3,580
36k
★ total · +0% this week
863
forks · 172 open issues
Star history (as recorded here)
LanguageRust
LicenseCC0-1.0
Created2016-06-17 (10y ago)
Last push3d ago
Watchers109
OwnerUser
Links
- GitHub: github.com/casey/just
- Homepage: https://just.systems
- Releases · Issues · Hacker News mentions
README excerpt
Table of Contents↗️ just `just` is a handy way to save and run project-specific commands. This readme is also available as a book. The book reflects the latest release, whereas the readme on GitHub reflects latest master. (中文文档在 这里, 快看过来!) Commands, called recipes, are stored in a file called `justfile` with syntax inspired by `make`: You can then run them with `just RECIPE`: [code] `just` has a ton of useful features, and many improvements over `make`: - `just` is a command runner, not a build system, so it avoids much of `make`'s complexity and idiosyncrasies. No need for `.PHONY` recipes! - Linux, macOS, Windows, and other reasonable unixes are supported with no additional dependencies. (Although if your system doesn't have an `sh`, you'll need to choose a different shell.) - Errors are specific and informative, and syntax errors are reported along with their source context. - Recipes can accept command line arguments, including flags and options. - `just` has a rich expression language and many built-in-functions. - Wherever possible, errors are resolved statically. Unknown recipes and circular dependencies are reported before anything runs. - `just` loads `.env` files, making it easy to populate environment variables. - Recipes can be listed from the command line. - Command line completion scripts are available for most popular shells. - Recipes can be written in arbitrary languages, like Python or Node.js. - `just` can be invoked from any subdirectory, not just the directory that contains the `justfile`. - `justfiles` can be organized into multiple files using modules and imports. - And much more! If you need help with `just`, please feel free to open an issue or ping me on Discord. Feature requests and bug reports are always welcome! Installation ------------ Just can be installed using your favorite package manager, by downloading pre-built binaries, or building from source with `cargo install just`. ### Prerequisites `just` should run on any system with a reasonable `sh`, including Linux, macOS, and the BSDs. #### Windows On Windows, `just` works with the `sh` provided by Git for Windows, GitHub Desktop, or Cygwin. After installation, `sh` must be available in the `PATH` of the shell you want to invoke `just` from. If you'd rather not install `sh`, you can use the `shell` setting to use the shell of your choice. Like PowerShell: [code] …or `cmd.exe`: [code] You can also set the shell using command-line arguments. For example, to use PowerShell, launch `just` with `--shell powershell.exe --shell-arg -c`. (PowerShell is installed by default on Windows 7 SP1 and Windows Server 2008 R2 SP1 and later, and `cmd.exe` is quite fiddly, so PowerShell is recommended for most Windows users.) ### Packages #### Cross-platform Package Manager Package Command arkade just arkade get just asdf just asdf plugin add just asdf install just <version> Cargo just cargo install just Cargo Binstall just cargo b