mirror of
https://github.com/Llewellynvdm/exa.git
synced 2024-12-03 00:28:21 +00:00
61c5df7c11
This commit changes the way the extended test suite is run. Previously, there was a folder full of outputs, and a script that ran exa repeatedly to check the outputs match. This script was hacked-together, with many problems: • It stops at the first failure, so if one test fails, you have no idea how many actually failed. • It also didn't actually show you the diff if one was different, it just checked it. • It combined stdout and stderr, and didn't test the exit status of exa. • All the output file names were just whatever I felt like calling the file at the time. • There is no way to only run a few of the tests — you have to run the whole thing each time. • There's no feel-good overall view where you see how many tests are passing. I started writing Specsheet to solve this problem (amongst other problems), and now, three and a half years later, it's finally ready for prime time. The tests are now defined as data rather than as a script. The outputs have a consistent naming convention (directory_flags.ansitxt), and they check stdout, stderr, and exit status separately. Specsheet also lets simple outputs (empty, non-empty, or one-line error messages) can be written inline rather than needing to be in files. So even though this pretty much runs the same tests as the run.sh script did, the tests are now more organised, making it easy to see where tests are missing and functionality is not being tested.
55 lines
2.7 KiB
Plaintext
55 lines
2.7 KiB
Plaintext
Usage:
|
|
exa [options] [files...]
|
|
|
|
META OPTIONS
|
|
-?, --help show list of command-line options
|
|
-v, --version show version of exa
|
|
|
|
DISPLAY OPTIONS
|
|
-1, --oneline display one entry per line
|
|
-l, --long display extended file metadata as a table
|
|
-G, --grid display entries as a grid (default)
|
|
-x, --across sort the grid across, rather than downwards
|
|
-R, --recurse recurse into directories
|
|
-T, --tree recurse into directories as a tree
|
|
-F, --classify display type indicator by file names
|
|
--colo[u]r=WHEN when to use terminal colours (always, auto, never)
|
|
--colo[u]r-scale highlight levels of file sizes distinctly
|
|
--icons display icons
|
|
|
|
FILTERING AND SORTING OPTIONS
|
|
-a, --all show hidden and 'dot' files
|
|
-d, --list-dirs list directories like regular files
|
|
-L, --level DEPTH limit the depth of recursion
|
|
-r, --reverse reverse the sort order
|
|
-s, --sort SORT_FIELD which field to sort by
|
|
--group-directories-first list directories before other files
|
|
-D, --only-dirs list only directories
|
|
-I, --ignore-glob GLOBS glob patterns (pipe-separated) of files to ignore
|
|
--git-ignore ignore files mentioned in '.gitignore'
|
|
Valid sort fields: name, Name, extension, Extension, size, type,
|
|
modified, accessed, created, inode, and none.
|
|
date, time, old, and new all refer to modified.
|
|
|
|
LONG VIEW OPTIONS
|
|
-b, --binary list file sizes with binary prefixes
|
|
-B, --bytes list file sizes in bytes, without any prefixes
|
|
-g, --group list each file's group
|
|
-h, --header add a header row to each column
|
|
-H, --links list each file's number of hard links
|
|
-i, --inode list each file's inode number
|
|
-m, --modified use the modified timestamp field
|
|
-S, --blocks show number of file system blocks
|
|
-t, --time FIELD which timestamp field to list (modified, accessed, created)
|
|
-u, --accessed use the accessed timestamp field
|
|
-U, --created use the created timestamp field
|
|
--changed use the changed timestamp field
|
|
--time-style how to format timestamps (default, iso, long-iso, full-iso)
|
|
--no-permissions suppress the permissions field
|
|
--octal-permissions list each file's permission in octal format
|
|
--no-filesize suppress the filesize field
|
|
--no-user suppress the user field
|
|
--no-time suppress the time field
|
|
--git list each file's Git status, if tracked or ignored
|
|
-@, --extended list each file's extended attributes and sizes
|