Commit Graph

1539 Commits

Author SHA1 Message Date
Benjamin Sago
9cfc70f4c0 Further shortening 2017-10-02 09:45:55 +02:00
Benjamin Sago
c7748fb1f0 Make these lines less long 2017-10-02 09:43:49 +02:00
Benjamin Sago
547ceda15b Merge branch 'devtools'
Fixes most (but not quite all!) of #297.
2017-10-01 12:45:15 +02:00
Benjamin Sago
25618ad666 Add a dev help 2017-10-01 12:44:29 +02:00
Benjamin Sago
d5f990e2ac Merge branch 'devtools' 2017-10-01 12:38:25 +02:00
Benjamin Sago
eb1188c2c8 Give the testing VM commands and help text 2017-10-01 12:37:35 +02:00
Benjamin Sago
a739299583 Add a release-checking script 2017-10-01 12:28:23 +02:00
Benjamin Sago
e6a8828b6f Ignore compiled artifacts by default
Now that the packaging scripts dump files here, these paths can be “officially” ignored.
2017-10-01 10:55:57 +02:00
Benjamin Sago
baccfe544b Linux check for Linux script
These changes are mostly just to mirror the macOS packaging script.
2017-10-01 10:55:38 +02:00
Benjamin Sago
d420d878c5 Add macOS packaging script
This script is a modified version of the Linux one, with a couple of tweaks to get them to look the same (Mach-O strip can’t --verbose?)
2017-10-01 10:55:14 +02:00
Benjamin Sago
a4bd8f7f17 Move the welcoming text to their own files too
Again, it was hard to read and edit this text when it was in a string inside an echo command inside a bash script inside a heredoc inside a Ruby script wrapped in a mystery. It also gives me space to write some actual comments.
2017-10-01 09:49:45 +02:00
Benjamin Sago
173e9b2345 Move the packaging script into its own file
Having it all echo-ed into the file like that made it hard to read *and* hard to maintain. My initial aversion to it was that I didn’t want there to be an executable script in the main repository that only worked when you were in the VM, because people would just run it anyway. But this can be avoided by leaving it non-executable, and having a command in the VM that runs it instead.
2017-10-01 09:48:20 +02:00
Benjamin Sago
02403c7cc5 Also include a ‘fresh’ VM for staticness testing
This fresh VM deliberately contains no dependencies and installs nothing, so it can be used to check that the uploaded binary still runs.
2017-09-30 15:23:55 +02:00
Benjamin Sago
29bb3645f4 Don’t include the path in the zipped binary
The ‘package-exa’ script’s zip contained /vagrant/exa-linux-x86_64 instead of just exa-linux-x86_64, and I never noticed.

https://stackoverflow.com/a/9710181/3484614 told me what to do.
2017-09-30 15:20:20 +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
d4bbfb39f0 Document environment variables and colours 2017-09-30 09:17:46 +02:00
Benjamin Sago
937b325e3a Add some ignored tests for sub-globbing 2017-09-30 09:17:29 +02:00
Benjamin Sago
166d1f5e5a Glob pattern ignore tests 2017-09-30 09:17:29 +02:00
Benjamin Sago
541e6855f2 Test some actual ignore caches 2017-09-30 09:17:29 +02:00
Benjamin Sago
476299e21f A note to my future self
It’s important to capture the current behaviour, even if it ends up being totally wrong.
2017-09-30 09:17:29 +02:00
Benjamin Sago
108dc80944 Ignore comments and blank lines when ignoring 2017-09-30 09:17:29 +02:00
Benjamin Sago
7b5b02d9f1 Extract function for parsing an ignore file 2017-09-30 09:17:29 +02:00
Benjamin Sago
1f23f3f0cc Don’t ignore .gitignore errors 2017-09-30 09:17:29 +02:00
Benjamin Sago
3d3ee8fd66 Typo fix 2017-09-30 09:17:29 +02:00
Benjamin Sago
827aa8bfc3 Ignore files matched in .gitignore
This doesn’t *completely* work: it seems to have trouble with ignored paths beginning with slashes, possibly amongst others. Also, .gitignore scanning could be made more efficient.
2017-09-30 09:17:29 +02:00
Benjamin Sago
b95446d834 Thread an ignore cache through the program
!
2017-09-30 09:17:29 +02:00
Benjamin Sago
07443e87ba Add a --git-ignore option that doesn’t do anything
!!
2017-09-30 09:17:28 +02:00
Benjamin Sago
2b099d8ba0 Fix up tests to have nested ignored files 2017-09-30 09:17:28 +02:00
Benjamin Sago
7339b753fb vagrant: Update apt before installing
I updated my Vagrant box and destroyed and rebuilt it, and for some reason, it didn’t know about ‘fish’. Updating beforehand fixes it.
2017-09-30 09:17:28 +02:00
Benjamin Sago
b85f8f249b Merge pull request #279 from tbodt/patch-1
Update README.md
2017-09-28 17:25:32 +01:00
Benjamin Sago
734579576a Merge pull request #292 from ogham/exa/master
Add .bk extension to is_temp.
2017-09-21 16:23:13 +01:00
Clar Charr
eda3e56e4c Add .bk extension to is_temp. 2017-09-17 23:08:25 -04:00
Mahmoud Al-Qudsi
6988bfb35c Add make test to Makefile 2017-09-16 14:44:14 -05:00
Mahmoud Al-Qudsi
ad02241ac2 Merge branch 'master' into optional_args 2017-09-16 14:28:24 -05:00
Benjamin Sago
4819c4721b Fix compile error with --no-default-features
Fixes #283. Also, have Travis compile without default features either, so I get warned the next time I break it.
2017-09-14 11:33:24 +01:00
Benjamin Sago
f55bd6de53 Merge branch 'it’s-that-time-again' 2017-09-14 11:12:34 +01:00
Benjamin Sago
c475cccce4 Flip the new/old order, and add suggestion for -lt
I changed my mind about which way round sorting by “newest” or by “oldest” should actually go. If you’re listing a large directory, you see the last lines of the output first, so these files should be the ones with the largest whatever the sort field is. It’s about sorting *last*, not sorting *first*. Sorting by size wouldn’t say “sorts smallest files first”, it would say “sorts largest files last”. Right?

Also, add a new suggestion that warns against “ls -lt”.
2017-09-14 09:18:17 +01:00
Benjamin Sago
a8bf990674 Tie value suggestions to their arguments
This commit changes the definition of Arg so that it knows about which values it can accept, and can display them in the help text. They were already being shown in the help text, but they were passed in separately, so one argument could show two different sets of options if it wanted. Now, the argument itself knows whether there are suggestions, so it doesn’t have to be passed in separately.

This means we can use it for other things, including listing choices when an option is missed out, without having to repeat the list.

With Misfire::BadArgument now only having two fields, it’s not worth using a constructor function anymore.
2017-09-14 01:22:37 +01:00
Mahmoud Al-Qudsi
36cf5df044 Add support for optional argument/flag with optional value
TakesValue::Optional introduced which allows for an optional flag with
an optional value (equivalent to getopts' optflagopt mode).

Can be used where a default value for a modifier could exist, but the
user might prefer to override.

Will be used to implement #284, permitting --time to default to "sort by
modification date" for compatibility with GNU/posix ls but keeping
support for exa's previous behavior.
2017-09-13 18:48:59 -05:00
Benjamin Sago
1824313cda Put misfire.rs in a nicer order
The main type is now at the top.
2017-09-13 23:49:30 +01:00
Benjamin Sago
43bbf00478 Show a warning when running ‘exa -ltr’
Raised in #243 and #284. exa isn’t able to override the -t option like this, so the least it can do is detect that case (which is going to be an error case anyway) and show a suggestion.
2017-09-13 23:47:19 +01:00
Benjamin Sago
0fefc78cbb Add more modified date aliases
I don’t really see the modified date as the *modified* date, rather just the *date* field, because it’s the date field I refer to like 99.9% of the time. So now it has aliases to match.

Also are included are aliases for the reverse order, because I’d rather write “new” than “the reverse of old”.
2017-09-13 23:26:06 +01:00
Benjamin Sago
19b7780755 Fix typo in error message
It said “(Choices: (choices: this, that, other))” instead of “(choices: this, that, other)”. Also improve the same error elsewhere: options more have ‘settings’ than ‘values’.
2017-09-13 22:37:51 +01:00
Benjamin Sago
68e70bf036 Reword this comment 2017-09-13 22:12:11 +01:00
Benjamin Sago
aa2e3a5d9e Merge branch 'ls-colors-finally' 2017-09-13 10:12:08 +01:00
Benjamin Sago
dc45332d7b Implement file name colouring in {exa,ls}_colors
This commit adds to the parsing of the LS_COLORS and EXA_COLORS variables so that non-two-letter codes (keys other than things like ‘di’ or ‘ln’ or ‘ex’) will be treated as file name globs, and get used to colour files accordingly.

Fixes #116 for good.
2017-09-13 08:51:57 +01:00
Benjamin Sago
b86074d63b Rename Style to Styles to avoid a name clash 2017-09-13 08:44:59 +01:00
Theodore Dubois
f99d3417ea Update README.md 2017-09-04 14:42:17 -07:00
Benjamin Sago
28b4b672d4 Move FileStyle to the same options file as Colours
They are going to be deduced together (from the same environment variable) so it makes sense to put them in the same file first.
2017-09-03 19:50:40 +01:00