Commit graph

131 commits

Author SHA1 Message Date
Casey Rodarmor 7680b19979
Inline setup and cleanup functions in completion script test (#1352) 2022-09-23 20:54:18 -07:00
Casey Rodarmor 3135db5e51
Fix justfile env shebang on Linux (#1330)
Add `-S` to the env invocation in the main justfile's shebang, which is
required on Linux.
2022-09-04 04:18:53 +00:00
Casey Rodarmor 4a4c669db9
Split Recipe::run into Recipe::{run_shebang,run_linewise} (#1270) 2022-07-21 01:46:52 +00:00
Christopher Morrow d7fd57e420
Add mdbook deps for build-book recipe (#1258) (#1259) 2022-07-06 20:36:28 +00:00
Casey Rodarmor a46be41699
Add / operator (#1237) 2022-06-25 09:39:06 +00:00
Casey Rodarmor c710d5a685
Fix book links (#1227) 2022-06-13 01:02:09 +00:00
Casey Rodarmor c87909c220
Fix a bunch of typos (#1204) 2022-05-29 02:07:53 +00:00
Casey Rodarmor 95de4eb1f8
Remove cargo-limit usage from justfile (#1199) 2022-05-28 05:52:09 +00:00
Casey Rodarmor 27cd8fd554
Remove call to sed in justfile (#1078) 2022-01-30 20:16:10 +00:00
Casey Rodarmor 4de93e19b8
Push to correct origin in publish recipe (#1044) 2021-12-05 07:46:46 +00:00
Casey Rodarmor e84dc0ff8f
Publish from GitHub master branch instead of local master (#1032) 2021-11-21 17:28:42 -08:00
Casey Rodarmor 629c75ff04
Use stable rustfmt instead of nightly (#967) 2021-09-16 13:44:40 +00:00
Casey Rodarmor fe0d0f46fa
Release 0.10.1 (#958)
- Bump version: 0.10.0 → 0.10.1
- Update changelog
- Update config test
- Update dependencies
- Update man page
2021-08-28 00:21:59 +00:00
Casey Rodarmor 0662e4c042
Use cargo-limit for all recipes (#928)
`cargo-limit` provides cargo command wrappers that only print warnings
if no errors are encounter, print the first warning last so it's easy to
see, and more.

This PR modifies the just recipe to use the `cargo-limit` versions of
commands where applicable.

Cargo limit can be installed with:

  cargo install cargo-limit
2021-07-29 07:09:22 +00:00
Casey Rodarmor 4ada364ede
Check GitHub Actions workflow with actionlint (#921) 2021-07-27 00:14:20 +00:00
Casey Rodarmor 1b0fafea75
Add loader and refactor errors (#917)
This commit adds a `Loader` type, which can be used to load multiple
source strings. This was done to support the work on modules, but
coincidentally enabled consolidating errors, since now `Config::run`
can take a `&Loader`, and in the event of an error, return and `Error`
that borrows from loaded strings. Multiple error types have been
consolidated, and a bunch of ad-hoc error printing was removed.
2021-07-26 01:26:06 -07:00
Casey Rodarmor 9ecf8ab027
Link to GitHub release pages in changelog (#886) 2021-06-26 20:41:07 +00:00
Casey Rodarmor 28fdd36430
Remove dotenv_load from tests (#853) 2021-06-03 01:12:39 -04:00
Casey Rodarmor 0a9ffd7a7b
Remove v prefix from version (#850) 2021-06-01 23:37:40 +00:00
Casey Rodarmor d8c00ac2e4
Add forbid script (#827) 2021-05-10 23:58:05 -07:00
Casey Rodarmor 4cb82e0c1f
Remove summary feature (#823)
Remove the `summary` feature and make the `summary` module always build.
It's a small module, so it shouldn't hurt compile times, and it should
prevent accidental breakages that are only caught on CI.
2021-05-08 19:07:51 -07:00
Casey Rodarmor 7bc9d3986e
Fix bang lexing and placate clippy (#821) 2021-05-07 00:14:38 -07:00
Casey Rodarmor 2e8c58e1cd
Change publish recipe to use stable rust (#777) 2021-03-28 16:10:37 -07:00
Casey Rodarmor 19f7ad09a7
Add conditional expressions (#714)
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 2e6e48d8f4
Release v0.5.11 (#629)
- Bump version: `0.5.10` -> `0.5.11`
- Update changelog
- Update dependencies
- Update man page
- Update config test
- Publish to cargo last in release recipe
2020-05-23 20:59:11 -07:00
Casey Rodarmor 875fb41e40
Make man page manual name title case (#623) 2020-04-08 12:54:54 -07:00
Casey Rodarmor f73de24fd7
Add log variable to justfile (#621)
Allows logging to be controlled with, for example:

    just log=trace run
2020-03-31 00:00:05 -07:00
Casey Rodarmor 985a6a833d
Release v0.5.10 (#613)
- Bump version: `0.5.9` -> `0.5.10`
- Update changelog
- Update dependencies
- Update man page
- Update config test
- Fix publish and check recipes
2020-03-18 09:03:21 -07:00
Casey Rodarmor 8fea09a3dd
Release v0.5.9 (#612)
- Bump version number: `0.5.8` -> `0.5.9`
- Update changelog
- Update dependencies
- Update config test
- Add `pr` and `push` to justfile
2020-03-18 08:19:43 -07:00
Casey Rodarmor 1dbc765390
Add --variables subcommand that prints variable names (#608)
Add a subcommand that prints out a space-separated list of the names of
top-level variables in the justfile.

The syntax is:

    $ just --variables
    a b c

This can be used for any purpose, but is mostly intended for completion
scripts, so that they can get the names of variables without using
`--evaluate`.

Additionally:

- Add `bin/generate-completions` script to regenerate checked-in
  completions
- Update dependencies
- Regenerate checked-in completions
2020-03-13 22:19:43 -07:00
Casey Rodarmor 3ec7dea4a3
Use unstable rustfmt configuration options (#592) 2020-02-10 20:07:06 -08:00
Casey Rodarmor aceee3e217
Release v0.5.7 (#591)
- Bump version: v0.5.7 -> v0.5.8
- Update changelog
- Update man page
- Update config test
- Update dependencies
2020-02-06 12:25:09 -08:00
Casey Rodarmor b1ebf63124
Improve comments in justfile (#588) 2020-01-31 00:47:48 -08:00
Casey Rodarmor 49cd7f5a93
Improve pre-publish check (#562)
- Ensure man page is up to date
- Build with summary feature
2019-12-11 17:08:48 -08:00
Casey Rodarmor 598f1c3200
Refactor Compilation error to contain a Token (#535)
Use a `Token` to represent the error context, instead of a mess of
fields. Remove write_message_context in favor of `Token::write_context`.
2019-11-13 19:32:50 -08:00
Casey Rodarmor aefdcea7d0
Gargantuan refactor (#522)
- Instead of changing the current directory with `env::set_current_dir`
  to be implicitly inherited by subprocesses, we now use
  `Command::current_dir` to set it explicitly. This feels much better,
  since we aren't dependent on the implicit state of the process's
  current directory.

- Subcommand execution is much improved.

- Added a ton of tests for config parsing, config execution, working
  dir, and search dir.

- Error messages are improved. Many more will be colored.

- The Config is now onwed, instead of borrowing from the arguments and
  the `clap::ArgMatches` object. This is a huge ergonomic improvement,
  especially in tests, and I don't think anyone will notice.

- `--edit` now uses `$VISUAL`, `$EDITOR`, or `vim`, in that order,
  matching git, which I think is what most people will expect.

- Added a cute `tmptree!{}` macro, for creating temporary directories
  populated with directories and files for tests.

- Admitted that grammer is LL(k) and I don't know what `k` is.
2019-11-09 21:43:20 -08:00
Casey Rodarmor b2285ce0e0
Reform Parser (#509)
Just's first parser performed both parsing, i.e the transformation of a
token stream according to the language grammar, and a number of consistency
checks and analysis passes.

This made parsing and analysis quite complex, so this diff introduces a
new, much cleaner `Parser`, and moves existing analysis into a dedicated
`Analyzer`.
2019-11-07 10:55:15 -08:00
Casey Rodarmor 8e084a7042
Note need to publish with nightly cargo (#506)
Until github.com/rust-lang/cargo/pull/7333 makes it into stable rust,
we'll be forced to publish using nightly, due to our unpublished dev
dependency on `test-utilities`.
2019-10-31 20:10:18 -07:00
Casey Rodarmor f3b8030070
Bump version: v0.4.4 -> v0.4.5 (#505) 2019-10-31 19:19:01 -07:00
Casey Rodarmor 5da0079ad9
Check minimal version compatibility before publishing (#487)
Checks that we build and pass tests with the minimal dependency versions
declared declared in Cargo.toml, as part of the `publish-check` recipe
run before publishing a new version of Just.
2019-10-08 22:17:22 -07:00
Casey Rodarmor 04a2b6461e
Generate man page with help2man (#463)
The generated man page doesn't look great by default, so this also adds the
help4help2man feature, which makes Just print a help message that produces
a better man page.
2019-07-18 21:58:06 -07:00
Casey Rodarmor 24311b7c0b
Pass all arguments to just watch (#441) 2019-05-15 17:30:47 -04:00
Casey Rodarmor d9986a393c
Improve done recipe (#444)
The old version often failed due to rebase conflicts if the feature branch to delete had multiple commits and was squash-merged into master.

This version just checks that the up-to-date master branch matches the feature branch and uses -D to delete the feature branch. This guarantees that we don't lose any work, and avoids bad rebases from squash merges to master.
2019-05-15 16:07:41 -04:00
Casey Rodarmor d46e6d86a6
Update justfile to use := instead of = (#432) 2019-05-07 20:15:22 -07:00
Casey Rodarmor 0ad5574ecc
Deprecate = in assignments, aliases, and exports in favor of := (#413) 2019-04-18 11:48:02 -07:00
Casey Rodarmor 85336f09b0
Bump version: v0.4.1 -> v0.4.2 (#407) 2019-04-15 23:39:18 -07:00
Casey Rodarmor 596ea34460
Replace regex-based lexer with character-at-a-time lexer (#406) 2019-04-15 22:40:02 -07:00
Casey Rodarmor 1d5fa6d29b
Clean up justfile and fix version extraction (#402) 2019-04-12 01:42:05 -07:00
Casey Rodarmor 3a287b864a
Housekeeping (#394)
- Upgrade to rust 2018
- Update dependencies
- Use BTree{Map,Set} instead of Map and Set
2019-04-11 15:23:14 -07:00
Casey Rodarmor 37639d68d7
Allow shebang lines so justfiles can be used as scripts (#393) 2019-04-08 14:28:17 -07:00