Commit Graph

106 Commits

Author SHA1 Message Date
Bastien Orivel af208285e8 Update term_grid to 0.2 2021-12-10 13:21:13 +01:00
ariasuni 75f14d23a3 Update Cargo.toml to make cargo-deb work again 2021-09-17 20:58:49 +02:00
ariasuni a85c72e2a0 Replace unmaintained crate `term_size` by `terminal_size` 2021-04-27 00:16:25 +02:00
Benjamin Sago 293372a613 v0.10.1 2021-04-12 22:28:31 +01:00
Benjamin Sago 505808fd9f The road ahead 2021-04-04 23:03:53 +01:00
Benjamin Sago 03cd3a81ff v0.10.0 2021-04-03 17:42:56 +01:00
Benjamin Sago aee9c0e623 Remove some unused Cargo.toml options 2021-04-03 17:41:54 +01:00
Benjamin Sago 004589d079 Upgrade datetime to remove some dependencies 2021-04-01 16:58:01 +01:00
Benjamin Sago 83f245237b Faster debug builds by excluding debug symbols
This also cleans up the release profile in Cargo.toml, which was having its default settings overridden with identical default settings.
2021-04-01 10:30:21 +01:00
Benjamin Sago 8046980806 Mass version upgrade
This upgrades the versions of everything, including upgrading almost all outdated dependencies.

• number_prefix had some backwards-incompatible changes. It now feels more Rustful, and spells "Mebi" correctly.
• term_grid stopped working when I upgraded it, worryingly, so I reverted it back.
2020-10-10 02:14:35 +01:00
Benjamin Sago 04e2d4c692 Just straight-up roll our own logger
This commit removes the env_logger dependency, replacing it with a simple implementation. Doing so removes like ten other transitive dependencies that no longer need to be included in the build.

It also gains the ability to enable trace-level logging. The users crate, which contains such logging statements as of the version I published a few days ago, has been upgraded to celebrate.

Also, change the log imports to globs. I'm only interested that a file doing logging, not what level it's logging at.
2020-10-10 02:01:12 +01:00
Benjamin Sago 5ca3548bb1 Inline the library into the binary
This commit removes the library portion of exa. Cargo now only builds a binary.

The original intent was for exa to have its own internal library, and have the binary just call the library. This is usually done for code cleanliness reasons: it separates the code that implements the purpose of the program (the "plumbing") from the code that the user interacts with (the "porcelain"), ensuring a well-defined interface between the two.

However, in exa, this split was in completely the wrong place. Logging was handled in the binary, but option parsing was handled in the library. The library could theoretically print to any Writer ("for testing", it said), but it's far easier to run integration tests by executing the binary than to change the code to handle unit tests, so this abstraction isn't gaining us anything.

I've also had several people ask me if exa should be packaged for Linux distributions as a library, or just a binary. Clearly, this is confusing!

In several of my other Rust projects, I've done this better, with the command-line option parsing and log printing done on the binary side. It also turns out that you don't need to have a [lib] section in the Cargo.toml, so that's gone too.
2020-10-10 01:43:42 +01:00
Benjamin Sago 0550faec05 Replace Makefile with a developmental Justfile
This commit deletes the Makefile, which contained targets to build exa and install it on the local machine, and replaces it with a Justfile, which only contains command to build and test exa.

My reasoning for doing this is as follows:

• exa is increasingly being installed through package managers, rather than built and tested locally, so users are avoiding using the Makefile at all.
• It was a pain to keep up with the correct paths for installing the binary, man pages, and completions, which can vary between OSes. By removing them, the code in this repository need only concern itself with building exa and putting its files in the 'target' directory, simplifying things.
• just is much simpler than make conceptually, which is why I prefer it. It just runs commands, rather than being a complete build system, which we already use Cargo for.
• just has features built-in, such as listing tasks, that we've had to create make targets for.
• exa only needed a Makefile at all because it pre-dates Cargo!
• Other Rust projects seem to be getting along perfectly fine without one.

If I've missed some important reason that makes it worth keeping the Makefile around then please let me know.
2020-10-10 00:57:04 +01:00
Igor Raits 80875aac8f
chore: Update users to 0.10
Signed-off-by: Igor Raits <i.gnatenko.brain@gmail.com>
2020-05-22 08:44:04 +02:00
Igor Raits da1ac5139b
chore: Update zoneinfo_compiled, datetime to 0.5
Signed-off-by: Igor Raits <i.gnatenko.brain@gmail.com>
2020-05-17 09:40:54 +02:00
Benjamin Sago 8ccff86940
Merge pull request #450 from Bond-009/2018
Update to Rust 2018
2020-01-18 23:23:43 +00:00
Benjamin Sago 5683b5796e
Merge branch 'master' into cargo-deb-spec 2020-01-18 22:41:53 +00:00
Bond_009 f599c7ce93 Update to Rust 2018 2019-07-19 20:40:21 +02:00
Benjamin Sago 479fdea02c v0.9.0 2019-07-15 04:07:45 +01:00
Benjamin Sago f7a985bf43 Merge branch 'vendored-openssl' of https://github.com/cecton/exa into cecton-vendored-openssl
# Conflicts:
#	Cargo.lock
#	Cargo.toml
2019-07-14 11:55:30 +01:00
Benjamin Sago 19a2eb168a git2-rs v0.9.1
Most importantly, binaries produced from this version don’t link to http-parser (or at least they didn’t when I tried it), so the Vagrantfile doesn’t need to configure the custom version of it.
2019-07-14 11:42:58 +01:00
Benjamin Sago c7b4674de2 ansi-term v0.12.0 2019-07-14 11:39:41 +01:00
Benjamin Sago 9f76f94f88 Bump zoneinfo_compiled to v0.4.8
Fixes #517. The commit in zoneinfo-compiled fixes a bug where missing flags in the tzinfo file were making it crash instead of being treated as 0 values.
2019-07-14 10:08:41 +01:00
Bernardo Meurer 781d79e665
Updated dependencies 2019-04-16 22:53:42 -07:00
Laurent Arnoud f2d1c28417
Update env logger to 0.6 (no change needed) 2019-01-17 18:31:32 +01:00
Cecile Tonglet dd015057d5 Upgrade git2 and added flag vendored-openssl 2019-01-06 12:44:49 +01:00
Benjamin Sago 058b4a57bd Bump users crate version
And remove an unnecessary allocation while we’re at it. Fixes #442
2018-12-07 00:59:05 +00:00
Igor Gnatenko e2d21ab9c1
Exclude unneded files from crates.io 2018-11-14 14:27:05 +01:00
golem131 2f3b62b9b5 users library dependency update 0.6 -> 0.7 2018-06-07 12:41:09 +03:00
Laurent Arnoud eff7122bb2
Update log to 0.4 and env_logger to 0.5
No change needed for ansi_term to 0.11
2018-05-03 19:40:04 +02:00
Benjamin Sago f757300718 Upgrade libgit2
The ogham/git2-rs repository that exa uses in the Vagrant VM has also been updated. The only casualty was that some constants got namespaced.
2018-03-11 11:25:06 +00:00
Benjamin Sago 78e483551c
Merge pull request #322 from ogham/exa/lazy_static-v1
bump lazy_static to 1
2018-03-11 09:40:37 +00:00
Benjamin Sago 8147c04a92
Merge branch 'master' into users 2018-03-11 09:38:17 +00:00
Igor Gnatenko 318fc44bf0 bump lazy_static to 1
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-11-30 23:37:56 +01:00
Igor Gnatenko c9dc4720ec bump users to 0.6
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-11-27 13:21:37 +01:00
Igor Gnatenko 4013562525 bump env_logger to 0.4
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-11-21 07:32:03 +01:00
Benjamin Sago 433f031161 Upgrade datetime to remove crates and fix build
The datetime crate used to bring in a lot more crates as dependencies (datetime#ce7d12adc5f65519c8290f1bce2eb77fca44f460), but now does not. The version increase also fixes #301.
2017-10-08 21:38:08 +01:00
Benjamin Sago c7497f3778 Display more information for non-release releases 2017-10-08 20:09:46 +01:00
Benjamin Sago 4c3fd5483d Upgrade ansi_term
(and remove getopts). I had to fix something in ansi_term (ansi_term#090e0a383d73a43e2f80a7b466e8feeee97c4c76) to get it to build!
2017-10-02 12:16:25 +02:00
Benjamin Sago 877265bf4e Version bump and release 2017-09-30 09:49:36 +02:00
Benjamin Sago 1efb8a5113 Use crates.io zoneinfo_compiled
Fixes #189, for #132.
2017-09-30 09:48:04 +02:00
Benjamin Sago 377260d88c Start logging at opportune moments
I want to be very careful when doing the “--git and --tree don’t work together” one to not search for more Git repositories than I should. Being able to log when a repository is looked up and also switch that functionality on and off would help with that.
2017-08-19 10:06:43 +01:00
Benjamin Sago a6ed42105d By lines, I meant details
Yeah, I forgot what I was meant to be doing half-way through.

This also adds the row_threshold field, which disables the view unless there will be more than the given number of rows. Getting the row count required upgrading term_grid to a version that has that function added.
2017-08-12 20:19:30 +01:00
Benjamin Sago b5bcf22612 Merge remote-tracking branch origin/option-pars-ng
This merges in exa’s own new options parser, which has the following features:

- You can specify an option twice and it’ll use the second one, making aliases usable for defaults (fixes #144)
- Lets arguments be specified more than once (fixes #125)

Strict mode is not done yet; I just wanted to merge this in because it’s been a while, and there’s work that needs to be done on master so I don’t want them drifting apart any further.

It’s likely that you’ll find cases where multiple arguments doesn’t work or where the wrong value is being used. There aren’t tests for *everything* yet, and it still uses global environment variables.

# Conflicts:
#	src/options/view.rs
2017-08-05 21:34:57 +01:00
PJB3005 f249c8528b Use term_size crate to fetch terminal size.
Should be cross-platform, one step closer to Windows support.
2017-08-05 08:09:26 +02:00
Alexandre Erwin Ittner 75a88823d9 Add quick-and-dirty Debian package spec for cargo-deb
That's not a package you can show to your mother, but it makes easier
to install/update/uninstall exa in systems without cargo or rustc.
2017-08-04 11:19:35 -03:00
Benjamin Sago 8d96be7f6a Document the parsing decisions
Even though these can’t actually be viewed with `cargo doc` yet, they’re still good to have around.
2017-07-22 18:06:05 +01:00
Benjamin Sago 8dd9df2e86 Put some metadata in Cargo.toml
For #132. Users had to be updated for the version number.
2017-07-07 11:56:47 +01:00
Benjamin Sago 99e52013b5 Version bump to 0.7.0 2017-07-07 11:47:47 +01:00
Benjamin Sago 84b01f2064 Fix bug where colours were incorrectly applied
exa assumed that the COLUMNS environment variable being present always meant that the output was to a terminal, so it should use colours. But because this variable can be overridden, colours were being incorrectly set!

The ‘fix’ is to stop trying to be clever while only calculating the terminal width once, and instead just stick it in a lazy_static so it’s usable everywhere.
2017-06-25 14:51:44 +01:00