@@ -4,12 +4,12 @@ use futures_core::future::BoxFuture;
44use futures_util:: future:: FutureExt as _;
55use petgraph:: { algo:: toposort, stable_graph:: StableDiGraph } ;
66use tokio:: io:: AsyncWriteExt as _;
7- use vite_path:: { AbsolutePath , RelativePathBuf } ;
7+ use vite_path:: AbsolutePath ;
88
99use crate :: {
1010 Error ,
1111 cache:: { CacheMiss , CommandCacheValue , TaskCache } ,
12- config:: { DisplayOptions , ResolvedTask , TaskCommand , Workspace } ,
12+ config:: { DisplayOptions , ResolvedTask , Workspace } ,
1313 execute:: { OutputKind , execute_task} ,
1414 fs:: FileSystem ,
1515} ;
@@ -24,8 +24,7 @@ pub struct ExecutionPlan {
2424/// Status of a task before execution
2525#[ derive( Debug ) ]
2626pub struct PreExecutionStatus {
27- pub command : TaskCommand ,
28- pub cwd : RelativePathBuf ,
27+ pub task : ResolvedTask ,
2928 pub cache_status : CacheStatus ,
3029 pub display_options : DisplayOptions ,
3130}
@@ -42,7 +41,6 @@ pub enum CacheStatus {
4241/// Status of a task execution
4342#[ derive( Debug ) ]
4443pub struct ExecutionStatus {
45- #[ expect( dead_code) ]
4644 pub pre_execution_status : PreExecutionStatus ,
4745 /// `Ok` variant means the task was executed (or replayed), no matter the exit status is zero or non-zero.
4846 ///
@@ -132,28 +130,24 @@ impl ExecutionPlan {
132130 workspace : & mut Workspace ,
133131 ) -> anyhow:: Result < ExecutionStatus > {
134132 tracing:: debug!( "Executing task {}" , step. display_name( ) ) ;
135-
136- let command = step. resolved_command . fingerprint . command . clone ( ) ;
137- let cwd = step. resolved_command . fingerprint . cwd . clone ( ) ;
138-
139133 let display_options = step. display_options ;
140134
141135 // Check cache and prepare execution
142136 let ( cache_status, execute_or_replay) = get_cached_or_execute (
143- step,
137+ step. clone ( ) ,
144138 & mut workspace. task_cache ,
145139 & workspace. fs ,
146140 & workspace. workspace_dir ,
147141 )
148142 . await ?;
149143
150- let pre_execution_status =
151- PreExecutionStatus { command, cwd, cache_status, display_options } ;
144+ let pre_execution_status = PreExecutionStatus { task : step, cache_status, display_options } ;
152145
153146 print ! ( "{}" , pre_execution_status) ;
154147
155148 // Execute or replay the task
156149 let exit_status = execute_or_replay. await ?;
150+ println ! ( ) ;
157151 Ok ( ExecutionStatus { pre_execution_status, execution_result : Ok ( exit_status) } )
158152 }
159153}
0 commit comments