...
1 package icmd
2
3 import (
4 "io"
5 "os"
6 "time"
7 )
8
9
10 type CmdOp func(*Cmd)
11
12
13 func WithTimeout(timeout time.Duration) CmdOp {
14 return func(c *Cmd) {
15 c.Timeout = timeout
16 }
17 }
18
19
20
21 func WithEnv(env ...string) CmdOp {
22 return func(c *Cmd) {
23 c.Env = env
24 }
25 }
26
27
28 func Dir(path string) CmdOp {
29 return func(c *Cmd) {
30 c.Dir = path
31 }
32 }
33
34
35 func WithStdin(r io.Reader) CmdOp {
36 return func(c *Cmd) {
37 c.Stdin = r
38 }
39 }
40
41
42 func WithStdout(w io.Writer) CmdOp {
43 return func(c *Cmd) {
44 c.Stdout = w
45 }
46 }
47
48
49 func WithStderr(w io.Writer) CmdOp {
50 return func(c *Cmd) {
51 c.Stderr = w
52 }
53 }
54
55
56 func WithExtraFile(f *os.File) CmdOp {
57 return func(c *Cmd) {
58 c.ExtraFiles = append(c.ExtraFiles, f)
59 }
60 }
61
View as plain text