Commit graph

328 commits

Author SHA1 Message Date
Casey Rodarmor 6e3b43ac9e Overhaul README (#231)
- Switch to asciidoc, since it supports an auto-generated table of contents
- Re-organize into sections
- Document private recipes
- Document windows dependencies
- Document doc comments
2017-10-12 16:12:23 -07:00
Casey Rodarmor f1a403541c Fix homebrew issue on Travis (#230) 2017-10-11 13:13:27 -07:00
Casey Rodarmor 8fa91a4eb1 Hide recipes with names starting with an _ from --list and --sumamary (#229) 2017-10-06 23:48:07 -07:00
Christopher Vittal a07fc226c1 Add short options for justfile and working-directory (#222)
Adds -f and -d as short options for --justfile and --working-directory
respectively.

Thanks @chrisvittal!
2017-09-11 00:58:35 -07:00
Casey Rodarmor e22da124d4 Update dependencies (#225)
Thanks @chrisvittal for reporting!
2017-09-10 17:28:00 -07:00
Casey Rodarmor 0a57519ad7 Update Vagrantfile: install curl, force install just (#221) 2017-09-07 21:38:28 -07:00
Casey Rodarmor 0024dae720 Start a changelog in CHANGELOG.md (#220)
Empty for now, except for a note that the changelog has begun :P
2017-08-25 01:40:57 -07:00
Casey Rodarmor 58f545f240 🔥 Stop parsing flags after positional args (#219)
This allows things like the following to work as,
I hope, one would expect:

  commit +flags:
    git commit {{flags}}

  $ just commit -a

It is however a breaking change, so also bump version number to 0.3.0.
2017-08-18 14:21:18 -07:00
Casey Rodarmor 1fd1c05653 Retire warn! in favor of eprintln! (#218) 2017-08-18 14:15:43 -07:00
Casey Rodarmor 35748f191f Add say thanks badge to readme (#215) 2017-08-16 21:19:39 -07:00
Jordan Danford 23f8881117 Fix typos in README.md (#213) 2017-08-07 13:35:05 -07:00
Casey Rodarmor f284f75d32 v0.2.32 -> v0.2.33 2017-08-02 20:47:37 -07:00
Casey Rodarmor d841e4c4bc Update dependencies (#212) 2017-08-02 20:45:57 -07:00
Casey Rodarmor 4320d1c699 Remove integration test debug spam (#206) 2017-06-03 22:46:07 -07:00
Casey Rodarmor 5bed607fb2 Remove old recipes (#205) 2017-06-01 18:05:19 -07:00
Casey Rodarmor 1b1a155dda Refactor color handling (#204)
Color logic is fairly complicated, so moved it into its own
module.

A `Color` object now encapsulates the --color setting, which
stream we are printing to, and what color we are painting.

This way, Color::paint can just do the right thing when asked to
paint text.

Also added tests to make sure that --list and --highlight colors
are using the correct color codes.
2017-06-01 18:01:35 -07:00
Casey Rodarmor 5af2e4ae5e Build, test, and release on fewer os/arch combinations (#201)
Build, test, and release for:

- x86-64 MacOS
- x86-64 Linux
- x86-64 FreeBSD
- x86-64 Windows
2017-05-13 18:34:26 -04:00
Casey Rodarmor 62a0d7de05 Bump version: 0.2.31 -> 0.2.32 2017-05-13 00:14:20 -04:00
Casey Rodarmor 2b59771c9d Bump version: 0.2.30 -> 0.2.31 2017-05-13 00:08:28 -04:00
Casey Rodarmor dca8cffde4 Update release recipe 2017-05-13 00:06:48 -04:00
Casey Rodarmor acdd9c91d9 Include grammar, readme, and license in releases 2017-05-12 23:59:59 -04:00
Casey Rodarmor 9b8808af40 Bump version: 0.2.28 -> 0.2.29 2017-05-12 23:50:46 -04:00
Casey Rodarmor 1cb7be2351 Bump version: 0.2.27 -> 0.2.28 (#200) 2017-05-12 23:02:35 -04:00
Casey Rodarmor 98fe09f26b Fix lints and things that make clippy sad (#199) 2017-05-12 22:09:47 -04:00
Casey Rodarmor 839f314439 Make appveyor continuous integration tests pass (#196) 2017-05-12 22:03:43 -04:00
Casey Rodarmor 59d863f6f4 Use crate metadata in --help string (#197) 2017-05-09 20:31:30 -04:00
Casey Rodarmor b84fa89d71 Remove debugging output (#195) 2017-05-07 23:27:52 -04:00
Casey Rodarmor 4a35c14024 Set up cross platform continuous integration on travis (#191)
Gets travis cross platform testing working.

Based on the templates from:

japaric/trust/commit/29b0e084ff2c40d1aa1b6a5d66ab81eca90439e1
2017-05-07 22:48:07 -04:00
Casey Rodarmor 616d324cd7 Error if running default recipe that requires arguments (#194) 2017-05-07 15:11:10 -07:00
Casey Rodarmor 200cb4ee26 Add period to empty justfile error message (#192) 2017-05-07 14:50:46 -07:00
Casey Rodarmor 7f2d360231 Write argument_range() in terms of min_arguments() and max_arguments() (#193) 2017-05-07 14:45:23 -07:00
Casey Rodarmor 1990c58a21 Add option to highlight echoed recipe lines (#190)
Using bold and cyan, for visibility.
2017-04-25 23:39:34 -07:00
Casey Rodarmor 9fce455851 Bump version: 0.2.26 -> 0.2.27 2017-04-23 17:02:13 -07:00
Casey Rodarmor bb15310549 Unicode integration test fix for windows (#189)
Windows had trouble with a backtick, so simplify it
2017-04-23 16:36:38 -07:00
Casey Rodarmor 165e7951af Use cygpath to translate paths on windows (#188)
I was previous doing it manually, which failed when running in
powershell in a Github Desktop for windows.

Use the `cygpath` utility instead.
2017-04-23 16:09:34 -07:00
Casey Rodarmor 832cf7b357 Move output() and OutputError into brev (#187)
They're pretty generic and generally useful, so move them into brev on crates.io.
2017-04-23 15:37:17 -07:00
Casey Rodarmor af764f5eab Refactor RunError::Backtick* to use OutputError (#186)
Add `output()` to get stdout of a command, return a OutputError if
it failes. Refactor backtick run errors to contain an OutputError.
2017-04-23 14:21:21 -07:00
Casey Rodarmor 84a55da1ce Make shebangs work on windows (#185)
We use EXEPATH, which points to the root of the MinGW installation
and can be used as a base for translating the unix path to the
executable in the shebang line.

If we're not on MinGW, well, we just throw up our hands and hope
for the best.
2017-04-22 21:39:29 -07:00
Casey Rodarmor 6a0e3abb32 Improve shebang execution error message (#184)
I was reusing TmpdirIoError for a few cases, but one of them
usually has more to do with the contents of the shebang line than
an actual io error involving the tmpdir. Pull it out into its own
RunError variant and improve the message.
2017-04-22 19:05:51 -07:00
Casey Rodarmor a6e1cc8ac5 Uppercase integration test exported variable names (#183)
For windows, since windows environment variables are not case
sensitive.
2017-04-22 16:39:13 -07:00
Casey Rodarmor 8d1ef2f54f Fix type in unit test panic message (#182) 2017-04-22 16:22:54 -07:00
Casey Rodarmor b0c5fa23ee Multi shell integration tests (#181)
* Run integration tests on multiple shells

To make sure that I don't break tests for shells other than my
dev-box's `sh` and the `sh` on travis, each integration test case
now runs using `sh`, `dash`, and `bash.
2017-04-22 16:15:15 -07:00
Casey Rodarmor 2b294f0b30 Create platform module (#178)
Moves platform specific functionality into its own module.

Thanks to @Meralis40 for starting this!

This also gets just building on windows \^_^/

Although a lot of tests still fail (✖╭╮✖)

The `PlatformInterface` trait contains functions which abstract
over platform specific functionality, with implementations for
different platforms behind #[cfg(*)] attributes.

- `make_shebang_command()` constructs a command which will execute
  the given script as if by a shebang. On linux this executes the
  file, on windows it runs the interpreter directly.

- `set_execute_permission()` sets the execute permission on a
  file. This is a nop on windows, since all files are executable.

- `signal_from_exit_status()` extracts the signal a process was
  halted by from its exit status, if it was halted by a signal.
2017-04-21 22:20:13 -07:00
Casey Rodarmor 6a26c72131 Use libc::{EXIT_SUCCESS, EXIT_FAILURE} for status (#177) 2017-04-21 22:11:18 -07:00
Casey Rodarmor f38f984f12 Use CAPITALIZED option names (#176)
Since this seems to be the convention.
2017-04-20 23:24:23 -07:00
Casey Rodarmor c9ce4601b9 Add --shell option to specify the shell to use (#175)
Mostly for debugging purposes, so I can make sure behavior is
consistent across different shells. Although I suppose this might
also be of use if you've got a mega weird `sh` that you'd like to
avoid.

Defaults to `sh` so current behavior is preserved.
2017-04-20 23:06:03 -07:00
Casey Rodarmor 799986dd34 Sort clap arguments alphabetically (#174) 2017-04-20 22:49:51 -07:00
Casey Rodarmor d7bb94ab5b Update and adapt to latest versions of dependencies (#171)
- Unicode 9 defines emoji to be wide characters; before their
  width was ambiguous. unicode-width has picked this up, so the
  tests which expected emoji to be single-width have been updated.

- The ordering of the --quiet and --dry-run flags seems to be
  have flipped in a clap error message, which broke a test, which
  is unbroken by this commit
2017-04-20 21:38:44 -07:00
Casey Rodarmor 95ef27b32b Add a gitter badge (#170) 2017-04-18 22:18:36 -07:00
Casey Rodarmor 435b4c5ea3 Remove trailing whitespace (#167) 2017-04-02 20:39:23 -07:00