File tree Expand file tree Collapse file tree 2 files changed +22
-6
lines changed Expand file tree Collapse file tree 2 files changed +22
-6
lines changed Original file line number Diff line number Diff line change @@ -15,24 +15,24 @@ cat log_file.txt | grep error | wc -l
15
15
package main
16
16
17
17
import (
18
- " bytes"
19
18
" fmt"
20
19
" github.com/rainu/go-command-chain"
21
20
)
22
21
23
22
func main () {
24
- output := &bytes.Buffer {}
25
-
26
- err := cmdchain.Builder ().
23
+ stdOut , stdErr , err := cmdchain.Builder ().
27
24
Join (" cat" , " log_file.txt" ).
28
25
Join (" grep" , " error" ).
29
26
Join (" wc" , " -l" ).
30
- Finalize ().WithOutput (output). Run ()
27
+ Finalize ().RunAndGet ()
31
28
32
29
if err != nil {
33
30
panic (err)
34
31
}
35
- fmt.Printf (" Errors found: %s " , output)
32
+ if stdErr != " " {
33
+ panic (stdErr)
34
+ }
35
+ fmt.Printf (" Errors found: %s " , stdOut)
36
36
}
37
37
```
38
38
Original file line number Diff line number Diff line change @@ -237,3 +237,19 @@ func ExampleBuilder_run() {
237
237
}
238
238
println (output .String ())
239
239
}
240
+
241
+ func ExampleBuilder_runAndGet () {
242
+ //it's the same as in shell: ls -l | grep README | wc -l
243
+ sout , serr , err := cmdchain .Builder ().
244
+ Join ("ls" , "-l" ).
245
+ Join ("grep" , "README" ).
246
+ Join ("wc" , "-l" ).
247
+ Finalize ().
248
+ RunAndGet ()
249
+
250
+ if err != nil {
251
+ panic (err )
252
+ }
253
+ println ("OUTPUT: " + sout )
254
+ println ("ERROR: " + serr )
255
+ }
You can’t perform that action at this time.
0 commit comments