1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-30 12:37:49 +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. Rudimentary tail implementation.
##Missing features: ## Missing features:
### Flags with 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. * `--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` * `--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 ### Others
The current implementation does not handle `-` as an alias for stdin. 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. * 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("h", "help", "help");
opts.optflag("V", "version", "version"); opts.optflag("V", "version", "version");
opts.optflag("v", "verbose", "always output headers giving file names"); 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("q", "quiet", "never output headers giving file names");
opts.optflag("", "silent", "synonym of --quiet");
let given_options = match opts.parse(&args) { let given_options = match opts.parse(&args) {
Ok (m) => { m } Ok (m) => { m }
@ -167,7 +167,7 @@ pub fn uumain(args: Vec<String>) -> i32 {
} }
let verbose = given_options.opt_present("v"); 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; let files = given_options.free;
@ -181,7 +181,7 @@ pub fn uumain(args: Vec<String>) -> i32 {
for filename in &files { for filename in &files {
if (multiple || verbose) && !quiet { if (multiple || verbose) && !quiet {
if !first_header { println!(""); } if !first_header { println!(); }
println!("==> {} <==", filename); println!("==> {} <==", filename);
} }
first_header = false; first_header = false;