1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-29 12:07:46 +00:00

tail: squashed two commits

commit ceaeb5ec2a284555e6c061070c74b050efb129f0
Author: Bulat Musin <bulatmusin@outlook.com>
Date:   Thu Jan 4 11:01:29 2018 +0300

    tail: fix typo

commit 50e3568e460c7ec9786835c9795d1496a2463901
Author: Bulat Musin <bulatmusin@outlook.com>
Date:   Thu Jan 4 10:54:17 2018 +0300

    collapse similar changes into one commit

    commit a54df8d92d534b801b364c2e74635dfe282441d8
    Author: Bulat Musin <bulatmusin@outlook.com>
    Date:   Wed Jan 3 21:05:33 2018 +0300

        tail: add --silent option

    commit 5c9aec7e5bb5ff79f1421e5b33bf82809795bc64
    Author: Bulat Musin <bulatmusin@outlook.com>
    Date:   Wed Jan 3 20:43:36 2018 +0300

        tail: add spaces after hashes
This commit is contained in:
Bulat Musin 2018-01-04 14:47:19 +03:00
parent 79ae872b1e
commit 6afddc4d6a
2 changed files with 5 additions and 6 deletions

View file

@ -1,14 +1,13 @@
Rudimentary tail implementation.
##Missing features:
## Missing features:
### Flags with features
* `--max-unchanged-stats` : with `--follow=name`, reopen a FILE which has not changed size after N (default 5) iterations to see if it has been unlinked or renamed (this is the usual case of rotated log files). With inotify, this option is rarely useful.
* `--quiet` : never output headers giving file names
* `--retry` : keep trying to open a file even when it is or becomes inaccessible; useful when following by name, i.e., with `--follow=name`
### Others
The current implementation does not handle `-` as an alias for stdin.
##Possible optimizations:
## Possible optimizations:
* Don't read the whole file if not using `-f` and input is regular file. Read in chunks from the end going backwards, reading each individual chunk forward.

View file

@ -79,8 +79,8 @@ pub fn uumain(args: Vec<String>) -> i32 {
opts.optflag("h", "help", "help");
opts.optflag("V", "version", "version");
opts.optflag("v", "verbose", "always output headers giving file names");
// TODO: --silent flag as alias to --quiet
opts.optflag("q", "quiet", "never output headers giving file names");
opts.optflag("", "silent", "synonym of --quiet");
let given_options = match opts.parse(&args) {
Ok (m) => { m }
@ -167,7 +167,7 @@ pub fn uumain(args: Vec<String>) -> i32 {
}
let verbose = given_options.opt_present("v");
let quiet = given_options.opt_present("q");
let quiet = given_options.opt_present("q") || given_options.opt_present("silent");
let files = given_options.free;
@ -181,7 +181,7 @@ pub fn uumain(args: Vec<String>) -> i32 {
for filename in &files {
if (multiple || verbose) && !quiet {
if !first_header { println!(""); }
if !first_header { println!(); }
println!("==> {} <==", filename);
}
first_header = false;