cmd

command
v0.0.0-...-9345751 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2021 License: MIT Imports: 6 Imported by: 0

README

Examples

The files wraprand.go and wrapstdin.go contain examples uses of the wrapwriter packages.

wraprand.go

wraprand.go prints a sequence of random numbers to a wrapwriter. The interesting lines are

w := wrapwriter.NewWriter(os.Stdout, width, indent, column)
for i := 0; i < count; i++ {
   r := ... 
   fmt.Fprintf(w, "%d, ", r)
}
w.Flush()

that (1) constructs a new wrapwriter.Writer that will attempt to limit output to a display with width columns, that prefix all output lines by indent spaces, and start with a perceived output column column; (2) writes output to the wrapwriter.Writer using the standard fmt.Fprintf() functions; and (3) flushes the Writers internal buffer.

The program gives the following outputs. Here we generate 20 random numbers and display them on lines at most 60 characters wide:

$ go run wraprand.go 20 60
2575, 197819, 2, 578220, 18340, 23215, 8177, 470062362,
285845, 101346, 26, 146, 101109035, 248, 1, 0, 162575, 332,
126960631, 19346,

Here we display the same numbers on lines at most 35 characters wide:

$ go run wraprand.go 20 35
2575, 197819, 2, 578220, 18340,
23215, 8177, 470062362, 285845,
101346, 26, 146, 101109035, 248, 1,
0, 162575, 332, 126960631, 19346,

Here we introduce a 5-space initial indentation and a maximum display width of 35:

$ go run wraprand.go 20 35 5
     2575, 197819, 2, 578220,
     18340, 23215, 8177, 470062362,
     285845, 101346, 26, 146,
     101109035, 248, 1, 0, 162575,
     332, 126960631, 19346,

Here we first write text that occupies the first columns on the first line, but still insist on a 5-space initial indentation of remaining lines and a maximum display width of 35:

$ go run wraprand.go 20 35 5 "Random numbers: "
Random numbers: 2575, 197819, 2,
     578220, 18340, 23215, 8177,
     470062362, 285845, 101346, 26,
     146, 101109035, 248, 1, 0,
     162575, 332, 126960631, 19346,

And finally we first write text that occupies the first columns on the first line, and now insist on a 20-space initial indentation of remaining lines and a maximum display width of 35:

$ go run wraprand.go 20 35 20 "Random numbers: "
Random numbers:     2575, 197819,
                    2, 578220,
                    18340, 23215,
                    8177,
                    470062362,
                    285845, 101346,
                    26, 146,
                    101109035, 248,
                    1, 0, 162575,
                    332, 126960631,
                    19346,

wrapstdin.go

wrapstdin.go copies stdin to stdout via a wrapwriter. There interesting liens are

w := wrapwriter.NewWriter(os.Stdout, width, indent, column)
w.ReadFrom(bufio.NewReader(os.Stdin))
w.Flush()

that (1) constructs a new wrapwriter.Writer that will attempt to limit output to a display with width columns, that prefix all output lines by indent spaces, and start with a perceived output column column; (2) reads output from standard in and sends it directly to the wrapwriter.Writer; and (3) flushes the Writers internal buffer.

Here are some examples:

mir:cmd go run wrapstdin.go < test.txt 60
Sed ut perspiciatis unde omnis iste natus error sit
voluptatem accusantium doloremque laudantium, totam rem
aperiam, eaque ipsa quae ab illo inventore veritatis et
quasi architecto beatae vitae dicta sunt explicabo.

Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut
odit aut fugit, sed quia consequuntur magni dolores eos qui
ratione voluptatem sequi nesciunt.

  Cicero      goes
  verbatim    right    here.

Neque porro quisquam est, qui dolorem ipsum quia dolor sit
amet, consectetur, adipisci velit, sed quia non numquam eius
modi tempora incidunt ut labore et dolore magnam aliquam
quaerat voluptatem.


Ut enim ad minima veniam, quis nostrum exercitationem ullam
corporis suscipit laboriosam, nisi ut aliquid ex ea commodi
consequatur? Quis autem vel eum iure reprehenderit qui in ea
voluptate velit esse quam nihil molestiae consequatur, vel
illum qui dolorem eum fugiat quo voluptas nulla pariatur?

$ go run wrapstdin.go < test.txt 35
Sed ut perspiciatis unde omnis iste
natus error sit voluptatem
accusantium doloremque laudantium,
totam rem aperiam, eaque ipsa quae
ab illo inventore veritatis et
quasi architecto beatae vitae dicta
sunt explicabo.

Nemo enim ipsam voluptatem quia
voluptas sit aspernatur aut odit
aut fugit, sed quia consequuntur
magni dolores eos qui ratione
voluptatem sequi nesciunt.

  Cicero      goes
  verbatim    right    here.

Neque porro quisquam est, qui
dolorem ipsum quia dolor sit amet,
consectetur, adipisci velit, sed
quia non numquam eius modi tempora
incidunt ut labore et dolore magnam
aliquam quaerat voluptatem.


Ut enim ad minima veniam, quis
nostrum exercitationem ullam
corporis suscipit laboriosam, nisi
ut aliquid ex ea commodi
consequatur? Quis autem vel eum
iure reprehenderit qui in ea
voluptate velit esse quam nihil
molestiae consequatur, vel illum
qui dolorem eum fugiat quo voluptas
nulla pariatur?

$ go run wrapstdin.go < test.txt 35 5
     Sed ut perspiciatis unde omnis
     iste natus error sit
     voluptatem accusantium
     doloremque laudantium, totam
     rem aperiam, eaque ipsa quae
     ab illo inventore veritatis et
     quasi architecto beatae vitae
     dicta sunt explicabo.

     Nemo enim ipsam voluptatem
     quia voluptas sit aspernatur
     aut odit aut fugit, sed quia
     consequuntur magni dolores eos
     qui ratione voluptatem sequi
     nesciunt.

       Cicero      goes
       verbatim    right    here.

     Neque porro quisquam est, qui
     dolorem ipsum quia dolor sit
     amet, consectetur, adipisci
     velit, sed quia non numquam
     eius modi tempora incidunt ut
     labore et dolore magnam
     aliquam quaerat voluptatem.


     Ut enim ad minima veniam, quis
     nostrum exercitationem ullam
     corporis suscipit laboriosam,
     nisi ut aliquid ex ea commodi
     consequatur? Quis autem vel
     eum iure reprehenderit qui in
     ea voluptate velit esse quam
     nihil molestiae consequatur,
     vel illum qui dolorem eum
     fugiat quo voluptas nulla
     pariatur?

$ go run wrapstdin.go < test.txt 35 5 "Cicero says: "
Cicero says: Sed ut perspiciatis
     unde omnis iste natus error
     sit voluptatem accusantium
     doloremque laudantium, totam
     rem aperiam, eaque ipsa quae
     ab illo inventore veritatis et
     quasi architecto beatae vitae
     dicta sunt explicabo.

     Nemo enim ipsam voluptatem
     quia voluptas sit aspernatur
     aut odit aut fugit, sed quia
     consequuntur magni dolores eos
     qui ratione voluptatem sequi
     nesciunt.

       Cicero      goes
       verbatim    right    here.

     Neque porro quisquam est, qui
     dolorem ipsum quia dolor sit
     amet, consectetur, adipisci
     velit, sed quia non numquam
     eius modi tempora incidunt ut
     labore et dolore magnam
     aliquam quaerat voluptatem.


     Ut enim ad minima veniam, quis
     nostrum exercitationem ullam
     corporis suscipit laboriosam,
     nisi ut aliquid ex ea commodi
     consequatur? Quis autem vel
     eum iure reprehenderit qui in
     ea voluptate velit esse quam
     nihil molestiae consequatur,
     vel illum qui dolorem eum
     fugiat quo voluptas nulla
     pariatur?

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL