Skip to content

structwafel/fecho

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fecho

echo made in rust, which can take files as input with the -f flag

Installation

cargo install fecho

Options

A simple tool to echo multiple files, or text, or piped values

Usage: fecho [OPTIONS] [INPUT]...

Arguments:
  [INPUT]...  What should be repeated

Options:
  -f, --file                     [INPUT] becomes a list of files you want to fecho
  -c, --count <COUNT>            Quantity of repetitions [default: 1]
  -s, --separator [<SEPARATOR>]  Optional separator, newline if no argument is given
  -t, --top <TOP>                Return display the first [TOP] lines of each echo
  -h, --help                     Print help
  -V, --version                  Print version

Examples

Using fecho to get the first two lines of a file:

fecho Cargo.toml -f -n 2 -t 2

[package]
name = "fecho"
[package]
name = "fecho"

Or multiple files

fecho Cargo.toml src/main.rs -f -n 2 -t 2 -s ";🦄;"

[package]
name = "fecho"
;🦄;
use std::{
    error::Error,
;🦄;
[package]
name = "fecho"
;🦄;
use std::{
    error::Error,

You can also pipe it through stdin:

fecho Cargo.toml -f | fecho -n 2 -t 2

[package]
name = "fecho"
[package]
name = "fecho"

Or just:

fecho 'Hello World!' -n 3 -s 'Hello User!'

Hello World!
Hello User!
Hello World!
Hello User!
Hello World!

When fecho is used to read stdin you can use the --continuos flag to make it read stdin continuously:
Which doesn't support the -n flag.
And makes the -t flag dictate the quantity of lines between each separator.

ping archlinux.org -c 6 | fecho -c -t 2 -s "=============="

PING archlinux.org (xx.xxx.xxx.xxx) 56(84) bytes of data.
64 bytes from archlinux.org (xx.xxx.xxx.xxx): icmp_seq=1 ttl=53 time=30.6 ms
==============
64 bytes from archlinux.org (xx.xxx.xxx.xxx): icmp_seq=2 ttl=53 time=33.5 ms
64 bytes from archlinux.org (xx.xxx.xxx.xxx): icmp_seq=3 ttl=53 time=33.2 ms
==============
64 bytes from archlinux.org (xx.xxx.xxx.xxx): icmp_seq=4 ttl=53 time=32.7 ms
64 bytes from archlinux.org (xx.xxx.xxx.xxx): icmp_seq=5 ttl=53 time=30.6 ms
==============
64 bytes from archlinux.org (xx.xxx.xxx.xxx): icmp_seq=6 ttl=53 time=33.0 ms

Comparing it to the normal output:
Where it will take the entire output and only then print it.

ping archlinux.org -c 6 | fecho -t 2 -n 3 -s "=============="

PING archlinux.org (xx.xxx.xxx.xxx) 56(84) bytes of data.
64 bytes from archlinux.org (xx.xxx.xxx.xxx): icmp_seq=1 ttl=53 time=44.3 ms
==============
PING archlinux.org (xx.xxx.xxx.xxx) 56(84) bytes of data.
64 bytes from archlinux.org (xx.xxx.xxx.xxx): icmp_seq=1 ttl=53 time=44.3 ms
==============
PING archlinux.org (xx.xxx.xxx.xxx) 56(84) bytes of data.
64 bytes from archlinux.org (xx.xxx.xxx.xxx): icmp_seq=1 ttl=53 time=44.3 ms

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages