@@ -51,13 +51,18 @@ pub fn cli_main<P: Subcommand + IntoPipeline>(
51
51
// This mechanism is in-place because some YAML pipeline defn langs (*cough*
52
52
// ADO *cough*) don't let you set pipeline-level env vars which are
53
53
// automatically inherited by all shell contexts.
54
+ let mut log_override = None ;
54
55
if let Commands :: VarDb ( var_db:: VarDb { job_idx, .. } )
55
56
| Commands :: ExecSnippet ( exec_snippet:: ExecSnippet { job_idx, .. } ) = & cli. command
56
57
{
57
- let _ = try_inject_flowey_log ( * job_idx) ;
58
+ log_override = try_get_flowey_log ( * job_idx) . unwrap_or_default ( ) ;
58
59
}
59
60
60
- ci_logger:: init ( "FLOWEY_LOG" ) . unwrap ( ) ;
61
+ if let Some ( log_level) = log_override {
62
+ ci_logger:: init_with_level ( & log_level) . unwrap ( ) ;
63
+ } else {
64
+ ci_logger:: init ( "FLOWEY_LOG" ) . unwrap ( ) ;
65
+ }
61
66
62
67
match cli. command {
63
68
Commands :: Debug ( cmd) => cmd. run ( ) ,
@@ -85,7 +90,7 @@ impl From<FlowBackendCli> for FlowBackend {
85
90
}
86
91
}
87
92
88
- fn try_inject_flowey_log ( job_idx : usize ) -> anyhow:: Result < ( ) > {
93
+ fn try_get_flowey_log ( job_idx : usize ) -> anyhow:: Result < Option < String > > {
89
94
// skip if the env var is already set
90
95
if std:: env:: var ( "FLOWEY_LOG" ) . is_err ( ) {
91
96
let log_level = var_db:: open_var_db ( job_idx) ?
@@ -96,11 +101,9 @@ fn try_inject_flowey_log(job_idx: usize) -> anyhow::Result<()> {
96
101
} ) ;
97
102
98
103
if let Some ( log_level) = log_level {
99
- // Yes, this is a hack... but I kinda don't want to go update the
100
- // ci_logger crate right now
101
- std:: env:: set_var ( "FLOWEY_LOG" , log_level)
104
+ return Ok ( Some ( log_level) ) ;
102
105
}
103
106
}
104
107
105
- Ok ( ( ) )
108
+ Ok ( None )
106
109
}
0 commit comments