@@ -13,19 +13,23 @@ pub enum BehaviorOnFailure {
13
13
Ignore ,
14
14
}
15
15
16
- /// How should the output of the command be handled (whether it should be captured or printed).
16
+ /// How should the output of a specific stream of the command (stdout/stderr) be handled
17
+ /// (whether it should be captured or printed).
17
18
#[ derive( Debug , Copy , Clone ) ]
18
19
pub enum OutputMode {
19
- /// Prints the stdout/stderr of the command to stdout/stderr of bootstrap (by inheriting these
20
- /// streams).
21
- /// Corresponds to calling `cmd.status()`.
20
+ /// Prints the stream by inheriting it from the bootstrap process.
22
21
Print ,
23
- /// Captures the stdout and stderr of the command into memory.
24
- /// Corresponds to calling `cmd.output()`.
25
- CaptureAll ,
26
- /// Captures the stdout of the command into memory, inherits stderr.
27
- /// Corresponds to calling `cmd.output()`.
28
- CaptureStdout ,
22
+ /// Captures the stream into memory.
23
+ Capture ,
24
+ }
25
+
26
+ impl OutputMode {
27
+ pub fn captures ( & self ) -> bool {
28
+ match self {
29
+ OutputMode :: Print => false ,
30
+ OutputMode :: Capture => true ,
31
+ }
32
+ }
29
33
}
30
34
31
35
/// Wrapper around `std::process::Command`.
@@ -45,7 +49,8 @@ pub enum OutputMode {
45
49
pub struct BootstrapCommand {
46
50
pub command : Command ,
47
51
pub failure_behavior : BehaviorOnFailure ,
48
- pub output_mode : OutputMode ,
52
+ pub stdout : OutputMode ,
53
+ pub stderr : OutputMode ,
49
54
// Run the command even during dry run
50
55
pub run_always : bool ,
51
56
}
@@ -113,14 +118,14 @@ impl BootstrapCommand {
113
118
self
114
119
}
115
120
116
- /// Capture the output of the command, do not print it.
121
+ /// Capture all output of the command, do not print it.
117
122
pub fn capture ( self ) -> Self {
118
- Self { output_mode : OutputMode :: CaptureAll , ..self }
123
+ Self { stdout : OutputMode :: Capture , stderr : OutputMode :: Capture , ..self }
119
124
}
120
125
121
126
/// Capture stdout of the command, do not print it.
122
127
pub fn capture_stdout ( self ) -> Self {
123
- Self { output_mode : OutputMode :: CaptureStdout , ..self }
128
+ Self { stdout : OutputMode :: Capture , ..self }
124
129
}
125
130
}
126
131
@@ -137,7 +142,8 @@ impl From<Command> for BootstrapCommand {
137
142
Self {
138
143
command,
139
144
failure_behavior : BehaviorOnFailure :: Exit ,
140
- output_mode : OutputMode :: Print ,
145
+ stdout : OutputMode :: Print ,
146
+ stderr : OutputMode :: Print ,
141
147
run_always : false ,
142
148
}
143
149
}
0 commit comments