Terts Diepraam
53070141c1
all: add format_usage function ( #3139 )
...
This should correct the usage strings in both the `--help` and user documentation. Previously, sometimes the name of the utils did not show up correctly.
2022-02-21 17:14:03 +01:00
Sylvestre Ledru
0ed5e2c884
Merge pull request #2957 from jfinkels/head-preserve-no-final-newline
...
head: don't add trailing newline to end of file that didn't originally have one
2022-02-12 19:03:13 +01:00
Hanif Bin Ariffin
3586465917
dont use is_numeric to check for digits
...
Signed-off-by: Hanif Bin Ariffin <hanif.ariffin.43262@gmail.com>
2022-02-03 21:42:22 +08:00
Daniel Eades
4f8d1c5fcf
add additional lints
2022-01-31 20:40:47 +01:00
Jeffrey Finkelstein
b9c2066ee9
uucore: move lines.rs to be a uucore feature
...
Refactor the `lines.rs` module to be a feature in `uucore`. It was
common to both `head` and `tail`.
2022-01-30 22:15:35 -05:00
Daniel Eades
ba45fe312a
use 'Self' and derive 'Default' where possible
2022-01-30 15:08:26 +01:00
Daniel Eades
784f2e2ea1
use semicolons if nothing returned
2022-01-30 15:08:26 +01:00
Sylvestre Ledru
b8b642101f
Merge pull request #2898 from jfinkels/tail-lines-zero-terminated
...
tail: support zero-terminated lines in streams
2022-01-30 09:44:04 +01:00
Terts Diepraam
eb82015b23
all: change macros
...
- Change the main! proc_macro to a bin! macro_rules macro.
- Reexport uucore_procs from uucore
- Make utils to not import uucore_procs directly
- Remove the `syn` dependency and don't parse proc_macro input (hopefully for faster compile times)
2022-01-29 15:26:32 +01:00
Terts Diepraam
9c8e865b55
all: enable infer long arguments in clap
2022-01-29 02:06:29 +01:00
Sylvestre Ledru
7f79fef2cd
fix various doc warnings
2022-01-29 00:09:09 +01:00
Jeffrey Finkelstein
83f96ec29d
tail: don't error when following non-UTF-8 data
...
Fix a bug where `tail -f` would terminate with an error due to failing
to parse a UTF-8 string from a sequence of bytes read from the
followed file. This commit replaces the call to `BufRead::read_line()`
with a call to `BufRead::read_until()` so that any sequence of bytes
regardless of encoding can be read.
Fixes #1050 .
2022-01-24 21:32:52 -05:00
Jeffrey Finkelstein
f595edaded
tail: fix a bug in tail [ -n | -c ] +NUM <file>
...
Fix a bug when getting all but the first NUM lines or bytes of a file
via `tail -n +NUM <file>` or `tail -c +NUM <file>`. The bug only
existed when a file is given as an argument; it did not exist when the
input data came from stdin.
2022-01-21 19:05:53 -05:00
Jeffrey Finkelstein
d27d6bc32c
split: add forwards_thru_file() helper function
...
Add helper function `forwards_thru_file()` that finds the index in a
reader of the byte immediately following the `n`th instance of a given
byte.
2022-01-21 18:33:15 -05:00
Jeffrey Finkelstein
58d84d5107
tail: support zero-terminated lines in streams
...
Support `-z` option when the input is not a seekable file. Previously,
the option was accepted by the argument parser, but it was being
ignored by the application logic.
2022-01-21 18:31:15 -05:00
Terts Diepraam
55a47f6fc0
Merge pull request #2863 from tertsdiepraam/clap-3
...
Clap 3
2022-01-20 23:14:52 +01:00
Roy Ivy III
2e251f91f1
0.0.12
2022-01-19 05:35:00 -06:00
Jeffrey Finkelstein
ca812a7558
tail: rm trailing \n if input doesn't end with one
...
Fix a bug where `tail` would inappropriately add a newline to the last
line of output even though the input did not end with one.
2022-01-18 17:34:41 -05:00
Jeffrey Finkelstein
e575007629
tail: improve error handling when file not found
2022-01-17 10:57:24 -05:00
Terts Diepraam
8872485922
Merge branch 'main' into clap-3
2022-01-17 13:25:51 +01:00
Sylvestre Ledru
1fbda8003c
coreutils 0.0.8 => 0.0.9, uucore_procs 0.0.7 => 0.0.8, uucore 0.0.10 => 0.0.11
2022-01-16 17:05:48 +01:00
Terts Diepraam
9c9643807a
tail: clap 3
2022-01-11 19:16:48 +01:00
Roy Ivy III
774e72551b
change ~ relax 'nix' version and remove 'nix' patch
...
- code coverage compilation on MacOS latest (MacOS-11+) now works with newer 'nix' versions
2022-01-09 18:57:25 -06:00
Smicry
81a1fde9f4
tail use UResult
2021-11-21 12:37:56 +08:00
Roy Ivy III
03e0cbb020
update 'nix' within workspace to force patched version
2021-11-19 17:55:03 -06:00
Roy Ivy III
f20aa49821
maint/CICD ~ (GHA) fix cargo-udeps
false positives (add 'ignore' exceptions to sub-crates)
2021-11-19 17:55:02 -06:00
Smicry
fc851e036b
Implement tail -<number> ( #2747 )
...
And add obsolete_syntax test
2021-11-19 21:37:47 +01:00
Jan Scheer
18a06c310e
tail: add some tweaks to pass more of GNU's testsuite checks related to -F
2021-11-03 14:40:57 +01:00
Jan Scheer
63e9cd9202
Merge branch 'master' into tail_notify
2021-10-26 16:45:46 +02:00
Jan Scheer
2238a87bb7
tail: implement --retry
and -F
...
* this also fixes a lot of small bugs with `--follow={Descriptor,Name} with/without `--retry`
2021-10-26 16:21:45 +02:00
Sylvestre Ledru
59e9870c56
Prepare version 0.0.8
2021-10-23 19:21:50 +02:00
Smicry
cb34b660cb
add tail usage
2021-10-19 00:15:17 +08:00
Jan Scheer
e3b35867a5
test_tail: clean up tests for --follow=name
2021-10-10 00:07:59 +02:00
Jan Scheer
a1206154b1
tail: fix the behavior for -f
and rename events
...
This makes uu_tail pass the "gnu/tests/tail-2/descriptor-vs-rename" test.
* add tests for descriptor-vs-rename (with/without verbose)
* fix some minor error messages
2021-10-08 23:36:41 +02:00
Jan Scheer
23d3e58f33
tail: improve file handling for --follow=name
...
* Change data structure from Vec to HashMap in order to better
keep track of files while watching them with `--follow=name`.
E.g. file paths that were removed while watching them and exit
if no files are remaining, etc.
* Move all logic related to file handling into a FileHandling trait
* Simplify handling of the verbose flag.
2021-10-07 14:37:02 +02:00
Jan Scheer
94cc966535
tail: change notify backend on macOS from FSEvents
to kqueue
...
On macOS only `kqueue` is suitable for our use case because `FSEvents`
waits until file close to delivers modify events.
2021-10-01 21:33:30 +02:00
Jan Scheer
22f78b113b
tail: update README
...
* add stub for `--max-unchanged-stats`
2021-09-28 21:25:04 +02:00
Jan Scheer
e935d40480
tail: implement handling of truncate event for --follow=name
2021-09-28 20:05:09 +02:00
Jan Scheer
d9cd28fab6
test_tail: add tests for --follow=name --disable-inotify
(polling)
2021-09-28 00:16:23 +02:00
Jan Scheer
c70b7a0501
tail: implement --follow=name
...
This implements `--follow=name` for create/move/delete events.
Under the hood crate `notify` provides a cross-platform notification
library.
2021-09-27 23:08:37 +02:00
Jan Scheer
a9066e2d0c
tail: switch from Notify 4.0.17 to 5.0.0-pre.13
...
* treat input filenames as PathBuf instead of String
2021-09-23 13:34:20 +02:00
Jan Scheer
fe3d020f6f
tail: use crate notify
for polling (implement --disable-inotify
)
2021-09-18 18:07:57 +02:00
Jan Scheer
a727b2e666
tail: handle file NotFound error correctly
2021-09-16 21:40:15 +02:00
Jan Scheer
1f24b1f59c
tail: implement sub-second sleep interval e.g. -s.1
2021-09-16 17:14:23 +02:00
Sylvestre Ledru
7eaae75bfc
add a github action job to identify unused deps
2021-09-15 12:06:50 +02:00
Sylvestre Ledru
cca2b19b4e
tail: only set the winapi dep on Windows
2021-09-13 18:15:49 +02:00
Jan Scheer
cd0d23752a
tail: add fixes to pass "gnu/tests/tail-2/tail-c.sh" from GNU's test suite
2021-09-08 13:10:19 +02:00
Michael Debertol
252220e9eb
refactor/uucore ~ make util_name and execution_phrase functions
...
Since util_name and execution_phrase no longer rely on features that are
only available to macros, they may as well be plain functions.
2021-08-14 17:55:18 +02:00
Roy Ivy III
c5792c2a0f
refactor ~ use util_name!()
as clap::app::App name argument for all utils
2021-08-14 13:53:13 +02:00
Jeremy Soller
ed6a9d4c57
tail: remove unused redox platform
2021-08-06 13:56:20 -06:00
Jeremy Soller
0474a2eadd
more, tail, test: Update redox_syscall to 0.2
2021-08-06 13:56:20 -06:00
Sylvestre Ledru
24b1822cba
Merge pull request #2468 from thomasqueirozb/tail_stdin
...
tail: handle `-` as an alias for stdin
2021-08-02 00:24:28 +02:00
Thomas Queiroz
940559f0e1
tail: handle -
as an alias for stdin
2021-08-01 17:20:24 -04:00
Sylvestre Ledru
26a882551b
update the dep to uucore_procs 0.0.6
2021-07-11 21:04:11 +02:00
Sylvestre Ledru
1d8a66b7d3
Update to version 0.0.7
2021-07-11 18:04:56 +02:00
Michael Debertol
2ebca384c6
all utils: enable wrap_help
...
This makes clap wrap the help text according to the terminal width,
which improves readability for terminal widths < 120 chars,
because clap defaults to a width of 120 chars without this feature.
2021-06-27 16:17:10 +02:00
Michael Debertol
0531153fa6
uutils: move clap::App creation to separate functions
2021-06-25 21:23:45 +02:00
Jan Scheer
1b824f4914
fix clippy warnings
2021-06-09 15:56:29 +02:00
Jan Scheer
f8e96150f8
fix clippy warnings and spelling
...
* add some missing LICENSE headers
2021-06-04 15:39:34 +02:00
Jan Scheer
ad26b7a042
head/tail/split: make error handling of NUM/SIZE arguments more
...
consistent
* add tests for each flag that takes NUM/SIZE arguments
* fix bug in tail where 'quiet' and 'verbose' flags did not override each other POSIX style
2021-06-03 20:37:29 +02:00
Jan Scheer
cc659c8572
Merge branch 'master' of github.com:uutils/coreutils into refactoring_parse_size
2021-06-01 12:35:48 +02:00
Jan Scheer
3c7175f00d
head/tail: add fixes and tests for bytes/lines NUM arg (undocumented sign)
...
* change tail bytes/lines clap parsing to fix posix override behavior
* change tail bytes/lines NUM parsing logic to be consistent with head
2021-06-01 12:17:11 +02:00
Roy Ivy III
98aff50d4b
docs/tail ~ fix markdownlint complaints
2021-05-31 08:23:58 -05:00
Roy Ivy III
9c0c8eb59f
change ~ remove 'main.rs' spell-checker exceptions
2021-05-31 08:11:31 -05:00
Jan Scheer
0bf14da490
tail: use "parse_size" from uucore
2021-05-28 22:21:03 +02:00
Jeffrey Finkelstein
bc9db289e8
head: add abstractions for "all but last n lines"
...
Add some abstractions to simplify the `rbuf_but_last_n_lines()`
function, which implements the "take all but the last `n` lines"
functionality of the `head` program. This commit adds
- `RingBuffer`, a fixed-size ring buffer,
- `ZLines`, an iterator over zero-terminated "lines",
- `TakeAllBut`, an iterator over all but the last `n` elements of an
iterator.
These three together make the implementation of
`rbuf_but_last_n_lines()` concise.
2021-05-22 23:56:48 -04:00
Sylvestre Ledru
8055f26a73
Merge pull request #2228 from jfinkels/tail-obo-positive-bytes
...
tail: fix off-by-one issue for +NUM args
2021-05-22 17:18:55 +02:00
Jeffrey Finkelstein
bc29645531
tail: fix off-by-one issue for +NUM args
...
Fix an off-by-one issue for `tail -c +NUM` and `tail -n +NUM` command
line options.
2021-05-17 19:45:42 -04:00
Jeffrey Finkelstein
fea1026669
tail: use std::io::copy() to write bytes to stdout
2021-05-17 18:15:39 -04:00
Jeffrey Finkelstein
2e621759b2
tail: refactor code into ReverseChunks iterator
...
Refactor code from the `backwards_thru_file()` function into a new
`ReverseChunks` iterator, and use that iterator to simplify the
implementation of the `backwards_thru_file()` function. The
`ReverseChunks` iterator yields `Vec<u8>` objects, each of which
references bytes of a given file.
2021-05-12 18:43:58 -04:00
Jeffrey Finkelstein
3114fd77be
tail: use &mut File instead of mut file: &File
2021-05-12 18:43:35 -04:00
Jeffrey Finkelstein
0cc779c733
tail: simplify unbounded_tail() function
...
Refactor common code out of two branches of the `unbounded_tail()`
function into a new `unbounded_tail_collect()` helper function, that
collects from an iterator into a `VecDeque` and keeps either the last
`n` elements or all but the first `n` elements.
This commit also adds a new struct, `RingBuffer`, in a new module,
`ringbuffer.rs`, to be responsible for keeping the last `n` elements
of an iterator.
2021-05-09 23:47:13 -04:00
James Robson
3678777539
tail --sleep-interval takes a value
2021-04-22 16:10:08 +01:00
Sylvestre Ledru
f37284129e
new release 0.0.6 to address the cat issue
2021-04-03 16:06:58 +02:00
Sylvestre Ledru
ac031dffa4
new release 0.0.5
2021-04-03 10:30:07 +02:00
Max Semenik
035f811dd0
Fix "panic message is not a string literal" warnings ( #1915 )
...
New in Rust 1.51.
Closes #1914
2021-03-26 11:09:16 +01:00
Yagiz Degirmenci
27b7552ef4
fix(tail): add support for negative indexing ( #1865 )
...
closes: https://github.com/uutils/coreutils/issues/1860
2021-03-22 10:01:54 +01:00
John Eckersberg
08eb56f120
Fix some clippy warnings
2021-03-10 08:42:00 -05:00
Sylvestre Ledru
517b2a6a22
Merge pull request #1767 from FelipeLema/mod_opt
...
Group OPT_ARGUMENTS into mods
2021-03-09 22:57:30 +01:00
Felipe Lema
d1addc97cc
missing OPT_ s
2021-03-09 18:10:04 -03:00
Sylvestre Ledru
6ad8528b99
update of the uucore dep to 0.0.7
2021-03-07 11:29:38 +01:00
Sylvestre Ledru
6481c5a247
Prepare version 0.0.4
2021-03-07 11:29:38 +01:00
Sylvestre Ledru
beda329a21
Fix some clippy warnings
2021-02-07 15:12:15 +01:00
Sylvestre Ledru
262b508b89
update the dep to uucore 0.0.6
2021-02-01 23:55:43 +01:00
Sylvestre Ledru
a807fc623a
Update to version 0.0.3
2021-01-22 09:40:38 +01:00
Gaurang Tandon
ac7cac2910
tail: moving to clap from getopt ( #1689 )
2021-01-12 17:44:11 +01:00
Sylvestre Ledru
b8e886ad1a
bump the minimal version of uucore & uucore_procs
2021-01-10 18:27:20 +01:00
Sylvestre Ledru
d9ae043a05
update of the version 0.0.1 => 0.0.2 ( #1686 )
2021-01-10 18:16:04 +01:00
Sylvestre Ledru
7942a64231
Remove 'extern crate'
...
Not necessary anymore. See:
https://doc.rust-lang.org/edition-guide/rust-2018/module-system/path-clarity.html#no-more-extern-crate
2020-12-31 15:44:00 +01:00
Roy Ivy III
6539b8c6b9
maint/deps ~ change version specification for dependencies between sub-packages
...
- refactor internal version specifications to be ">=M.m.p" (where M.m.p is *already published*)
## [why]
Loosening internal version dependencies decreases the coupling between packages such
that packages can be published in a looser order. It allows the packages to be version
updated and published in tandem (ie, by using `cargo workspace ...`). Once published,
the internal versions can then be updated (again, to an *already published* package
version), as needed.
2020-11-08 20:26:46 -06:00
Roy Ivy III
c17307c757
fix ~ update workspace pointers to 'uucore' and 'uucore_procs'
2020-11-08 20:26:46 -06:00
Alex Lyon
110d6844ad
Use an iterator over OsString for uumain()
...
Additionally, restructure `uname` so that we don't need to find the
iterator's length.
2020-06-16 03:28:02 -05:00
Roy Ivy III
fbbd881ca9
docs ~ reduce sub-crate meta-information keywords to the maximum of five
2020-05-31 15:48:54 -05:00
Roy Ivy III
f82de13847
docs ~ spell-check repairs and addition of exceptions
2020-05-30 01:36:02 -05:00
Roy Ivy III
6f465eeb9f
deps ~ update utils to uucore/uucore_procs v0.0.4
2020-05-29 22:59:48 -05:00
Roy Ivy III
fc9abdc179
fix/tail ~ update to correct current WinAPI usage (ref #1496 )
2020-05-29 22:59:48 -05:00
Roy Ivy III
7cfa8be5f2
docs ~ add meta information to sub-crates
2020-05-29 22:59:47 -05:00
Roy Ivy III
db2e950918
change ~ make all sub-crates independent
2020-05-29 22:59:40 -05:00
Roy Ivy III
5aa2b039a5
change ~ fixup paths (within workspace packages) to common code
2020-04-14 13:46:19 -05:00
Roy Ivy III
78c362c8b5
change ~ fixup paths (within workspace packages)
2020-04-14 13:46:18 -05:00