Commit Graph

615 Commits

Author SHA1 Message Date
Pen Tree
991589131b
Update to actions/cache@v2 () 2021-01-07 14:49:13 -08:00
Ross MacArthur
d43241a781
Add link in readme to GitHub Action () 2020-11-27 00:14:46 -08:00
Ralph Minderhoud
dae44f0024
Add docs for justfile() and justfile_directory() () 2020-11-19 17:20:12 -08:00
Casey Rodarmor
1fc4842e4c
Fix CI ()
- Replace `::add-path::` CI command with environment files
- Placate Clippy
- Consolidate cache actions
2020-11-19 14:47:04 -08:00
Casey Rodarmor
8502cf6618
Improve readme ()
- Add section about using `set -euxo pipefail`
- Add section about setting variables inside recipes
2020-11-08 13:49:39 -08:00
Casey Rodarmor
c4835c8ff1
Replace saythanks.io link with malto: link ()
Saythanks.io now includes the email address in the link, so I think I'm
just use a mailto link instead.
2020-10-30 16:59:20 -07:00
Casey Rodarmor
ea64e0ec49
Update man page to v0.8.3 () 2020-10-28 00:16:11 -07:00
Casey Rodarmor
19f986d495
Release v0.8.3 ()
- Bump version: 0.8.2 → 0.8.3
- Update changelog
- Update config test
2020-10-28 00:04:53 -07:00
Casey Rodarmor
aa506fa5bd
Allow ignore line endings inside delimiters ()
Modify the lexer to keep track of opening `({[` and closing `]})` delimiters.
When the lexer would emit an eol or indent outside of a recipe when there
is at least one open delimiter, emit a whitespace token instead.

This allows expressions to be split on multiple lines, like so:

    x := if 'a' == 'b' {
      'x'
    } else {
      'y'
    }

This does not work inside of recipe body interpolations, although this
restriction might relaxed in the future.
2020-10-27 23:51:17 -07:00
Casey Rodarmor
70768eb24c
Release v0.8.2 ()
- Bump version: 0.8.1 → 0.8.2
- Update dependencies
- Update changelog
- Update man page
- Update config test
2020-10-26 18:30:23 -07:00
Casey Rodarmor
19f7ad09a7
Add conditional expressions ()
Add conditional expressions of the form:

   foo := if lhs == rhs { then } else { otherwise }

`lhs`, `rhs`, `then`, and `otherwise` are all arbitrary expressions, and
can recursively include other conditionals. Conditionals short-circuit,
so the branch not taken isn't evaluated.

It is also possible to test for inequality with `==`.
2020-10-26 18:16:42 -07:00
Casey Rodarmor
3643a0dff0
Add Parser::forbid () 2020-10-25 23:57:08 -07:00
Casey Rodarmor
bdf1c92251
Automatically track expected tokens while parsing ()
Remove all manual tracking of which tokens would have been accepted by
the parser in favor of having the parser add tokens that it checks for
to a set of expected tokens, clearing them when it accepts a token, and
using the current contents of the set in error messages.

This is a massive improvement, and will make the parser easier to
modify going forward.

And, this actually solves my sole issue with hand-written parsers.

Thanks to matklad on reddit for suggesting this!
2020-10-25 19:37:26 -07:00
Casey Rodarmor
d7799ebec4
Document feature flags in Cargo.toml ()
Just doesn't have any features that are likely to be useful to end users,
but it's good to document them nonetheless.
2020-10-18 23:04:00 -07:00
Zhenhui Xie
0e1af65565
Allow completing variables and recipes after --set in zsh completion script () 2020-10-17 21:58:44 -07:00
Casey Rodarmor
b64718b295
Release v0.8.1 ()
- Bump version: 0.8.0 → 0.8.1
- Update dependencies
- Update changelog
- Update man page
- Update config test
2020-10-15 20:17:38 -07:00
Casey Rodarmor
a1dec5d667
Add FreeBSD port to readme () 2020-10-12 22:50:18 -07:00
Casey Rodarmor
d1efc18174
Allow choosing multiple recipes to run ()
Modifies the `--choose` subcommand to allow a chooser to return
space-separated recipe names recipes to run.
2020-10-10 17:54:58 -07:00
Casey Rodarmor
526badbd6f
Placate clippy () 2020-10-09 15:44:17 -07:00
Chris Nantau
fbda8dd2c7
Complete recipes names in PowerShell completion script () 2020-10-05 19:12:48 -07:00
Vikesh Raj
a8361012d6
Complete recipes in bash completion script ()
Modifies the bash completion script to complete both recipes and flags.
`just <TAB>` will complete recipes, and `just -<TAB>` will complete
flags and options.
2020-10-05 17:58:30 -07:00
Quentin Nerden
601cc69028
Fix readme documentation for ignoring errors ()
The example justfile omitted the `-`.
2020-10-04 13:28:47 -07:00
Casey Rodarmor
2909614f68
Fix build fix ()
Fix the conditional that gates installing GNU Tar. This should finally
fix the build errors we've been seeing.
2020-10-04 13:23:27 -07:00
Casey Rodarmor
935f1130ac
Release v0.8.0 ()
- Bump version: 0.7.3 → 0.8.0
- Update dependencies
- Update changelog
- Update man page
- Update config test
2020-10-03 14:32:53 -07:00
Casey Rodarmor
30fee97f73
Document how to ignore errors with - in readme () 2020-10-03 14:23:51 -07:00
Will Speak
9bd0720aa1
Allow suppressing failures with - prefix ()
If a command in a linewise recipe is prefixed with `-`, then the exit
status is ignored and execution continues.
2020-10-03 13:54:19 -07:00
Casey Rodarmor
db6a9197c6
Install BSD Tar on GitHub Actions to fix CI errors () 2020-10-03 13:47:10 -07:00
Matt Boulanger
991f42d4ac
Move separate quiet config value to verbosity ()
Moves the separate quiet variable in the `Config` struct into the existing
verbosity field; the `Verbosity` enum now has a `Quiet` variant. When running, the
presence of the quiet flag will set the verbosity to `Quiet`, overriding any
number of verbosity flags in the CLI args.
2020-10-01 20:00:15 -07:00
Casey Rodarmor
d3ec3e4ce8
Release v0.7.3 ()
- Bump version: 0.7.2 → 0.7.3
- Update changelog
- Update man page
- Update config test
2020-09-17 19:51:46 -07:00
Casey Rodarmor
9d0246998d
Add the --choose subcommand ()
The `--choose` subcommand runs a chooser to select a recipe to run. The
chooser should read lines containing recipe names from standard input,
and write one of those names to standard output.

The chooser defaults to `fzf`, a popular fuzzy finder, but can be
overridden by setting $JUST_CHOOSER or passing `--chooser <CHOOSER>`.
2020-09-17 19:43:04 -07:00
Casey Rodarmor
55985aa242
Combine integration tests into single binary ()
Combine all integration test binaries into a single binary with the root
in `tests/lib.rs`. This also turns of automatic test discovery, so
when adding another set of integration tests, a mod statement will need
to be added to `tests/lib.rs`.
2020-09-17 17:59:46 -07:00
Casey Rodarmor
c62ff5a3d0
Document --unsorted flag in readme () 2020-09-01 12:44:53 -07:00
Casey Rodarmor
551a22b5fc
Release v0.7.2 ()
- Bump version: 0.7.1 → 0.7.2
- Update dependencies
- Update changelog
- Update man page
- Update config test
2020-08-23 20:21:08 -07:00
Casey Rodarmor
9ecfd2bef4
Add option to print recipes in source order ()
Add an `--unsorted` flag, which makes `--list` and `--summary` print
their entries in source order.
2020-08-21 15:13:54 -07:00
Casey Rodarmor
75898e29b6
Mention Linux, MacOS and Windows support in readme () 2020-08-19 14:05:01 -07:00
Casey Rodarmor
5e2b51e83e
Add list highlighting nice features to readme ()
This was suggested by @zaiste, to make it clearer how Just differs from
Make, and what features it has.
2020-08-05 19:20:11 -07:00
Casey Rodarmor
981465ad30
Release v0.7.1 ()
- Bump version: 0.7.0 → 0.7.1
- Update changelog
- Update man page
- Update config test
2020-07-19 05:10:38 -07:00
Casey Rodarmor
05d73a423a
Search for .env file from working directory ()
Search for a `.env` file starting in the  working directory, instead of
the invocation directory.
2020-07-19 05:01:46 -07:00
Casey Rodarmor
8fad0626f8
Move link-time optimization config into Cargo.toml ()
Passing `-C lto` is more or less unsupported and may stop working, so do
this in Cargo.toml instead.
2020-07-17 12:14:02 -07:00
Casey Rodarmor
c1a0001939
Release v0.7.0 ()
- Bump version: 0.6.1 → 0.7.0
- Update dependencies
- Update changelog
- Update man page
- Update config test
2020-07-16 21:58:49 -07:00
Casey Rodarmor
837b6e6a00
Skip .env items which are set in environment ()
If an environment variable exists with the same key as a variable from a
`.env` file, skip the variable from the `.env` file in favor fo the key
from the environment.
2020-07-16 21:37:33 -07:00
Casey Rodarmor
cea4a16081
Mark tags that start with v as releases () 2020-07-01 23:42:39 -07:00
Casey Rodarmor
7384307fdc
Release v0.6.1 ()
- Bump version: 0.6.0 → 0.6.1
- Update dependencies
- Update changelog
- Update man page
- Update config test
2020-06-28 15:07:03 -07:00
Casey Rodarmor
5533073f56
Only use cygpath on shebang if it contains / ()
On Windows, skip conversion if a shebang path does not include `/`. In
this case it is not a Unix path, and does not need to be converted to a
Windows path before running.
2020-06-27 16:38:56 -07:00
Casey Rodarmor
863fb53885
Release v0.6.0 ()
- Bump version: 0.5.11 -> 0.6.0
- Update dependencies
- Update changelog
- Update man page
- Update config test
2020-06-18 11:50:47 -07:00
Richard Berry
7615fe13a5
Clarify variadic parameter default values ()
Clarify that both `+` and `*` variadics can take default values
in readme.
2020-06-13 13:56:28 -07:00
Richard Berry
1ff619295c
Add variadic parameters that accept zero or more arguments ()
Add "star" variadic parameters that accept zero or more arguments,
distinguished with a `*` in front of the parameter name.
2020-06-13 01:49:13 -07:00
David Arnold
63f51b5b48
Add keybase example justfile () 2020-06-09 23:05:35 -07:00
Casey Rodarmor
8e6177601c
Strip trailing whitespace in examples/pre-commit.just () 2020-06-09 23:00:53 -07:00
Casey Rodarmor
d7a51e72f5
Test that example justfiles successfully parse ()
Parse all entries in `examples` as justfiles, to make sure that example
justfiles parse successfully.
2020-06-09 22:57:16 -07:00