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
¶
There is no documentation for this package.