@@ -33,12 +33,17 @@ pub fn list_jobs(path: &PathBuf) -> Result<()> {
3333 path. join( ".gitea" ) . join( "workflows" ) ,
3434 ] ;
3535
36- let workflows_dir = workflows_dirs. iter ( )
36+ let workflows_dir = workflows_dirs
37+ . iter ( )
3738 . find ( |d| d. exists ( ) && d. is_dir ( ) )
38- . ok_or_else ( || anyhow:: anyhow!( "No .forgejo/workflows or .gitea/workflows directory found in {}" , path. display( ) ) ) ?;
39+ . ok_or_else ( || {
40+ anyhow:: anyhow!(
41+ "No .forgejo/workflows or .gitea/workflows directory found in {}" ,
42+ path. display( )
43+ )
44+ } ) ?;
3945
40- let entries = std:: fs:: read_dir ( workflows_dir)
41- . context ( "Failed to read workflows directory" ) ?;
46+ let entries = std:: fs:: read_dir ( workflows_dir) . context ( "Failed to read workflows directory" ) ?;
4247
4348 println ! ( "\n {}" , "Available workflows and jobs:" . green( ) . bold( ) ) ;
4449
@@ -47,29 +52,35 @@ pub fn list_jobs(path: &PathBuf) -> Result<()> {
4752 let path = entry. path ( ) ;
4853
4954 if path. extension ( ) . and_then ( |s| s. to_str ( ) ) == Some ( "yml" )
50- || path. extension ( ) . and_then ( |s| s. to_str ( ) ) == Some ( "yaml" ) {
51-
55+ || path. extension ( ) . and_then ( |s| s. to_str ( ) ) == Some ( "yaml" )
56+ {
5257 let filename = path. file_name ( ) . unwrap ( ) . to_string_lossy ( ) ;
53- let content = std :: fs :: read_to_string ( & path )
54- . context ( format ! ( "Failed to read {}" , filename) ) ?;
58+ let content =
59+ std :: fs :: read_to_string ( & path ) . context ( format ! ( "Failed to read {}" , filename) ) ?;
5560
56- let workflow: ForgejoWorkflow = serde_yaml :: from_str ( & content )
57- . context ( format ! ( "Failed to parse {}" , filename) ) ?;
61+ let workflow: ForgejoWorkflow =
62+ serde_yaml :: from_str ( & content ) . context ( format ! ( "Failed to parse {}" , filename) ) ?;
5863
5964 let workflow_name = workflow. name . as_deref ( ) . unwrap_or ( filename. as_ref ( ) ) ;
60- println ! ( "\n {} {}" , "Workflow:" . cyan( ) . bold( ) , workflow_name. yellow( ) ) ;
65+ println ! (
66+ "\n {} {}" ,
67+ "Workflow:" . cyan( ) . bold( ) ,
68+ workflow_name. yellow( )
69+ ) ;
6170
6271 for ( job_name, job) in workflow. jobs {
6372 let runs_on = job. runs_on . as_deref ( ) . unwrap_or ( "N/A" ) ;
6473 let steps_count = job. steps . as_ref ( ) . map ( |s| s. len ( ) ) . unwrap_or ( 0 ) ;
6574 let container = job. container . as_deref ( ) . unwrap_or ( "N/A" ) ;
6675
67- println ! ( " {} {} [runs-on: {}, container: {}, steps: {}]" ,
76+ println ! (
77+ " {} {} [runs-on: {}, container: {}, steps: {}]" ,
6878 "•" . cyan( ) ,
6979 job_name. yellow( ) ,
7080 runs_on. blue( ) ,
7181 container. dimmed( ) ,
72- steps_count. to_string( ) . dimmed( ) ) ;
82+ steps_count. to_string( ) . dimmed( )
83+ ) ;
7384 }
7485 }
7586 }
@@ -85,26 +96,34 @@ pub async fn run_job(path: &PathBuf, job_name: &str) -> Result<()> {
8596 path. join( ".gitea" ) . join( "workflows" ) ,
8697 ] ;
8798
88- let workflows_dir = workflows_dirs. iter ( )
99+ let workflows_dir = workflows_dirs
100+ . iter ( )
89101 . find ( |d| d. exists ( ) && d. is_dir ( ) )
90- . ok_or_else ( || anyhow:: anyhow!( "No .forgejo/workflows or .gitea/workflows directory found in {}" , path. display( ) ) ) ?;
102+ . ok_or_else ( || {
103+ anyhow:: anyhow!(
104+ "No .forgejo/workflows or .gitea/workflows directory found in {}" ,
105+ path. display( )
106+ )
107+ } ) ?;
91108
92- let entries = std:: fs:: read_dir ( workflows_dir)
93- . context ( "Failed to read workflows directory" ) ?;
109+ let entries = std:: fs:: read_dir ( workflows_dir) . context ( "Failed to read workflows directory" ) ?;
94110
95111 for entry in entries {
96112 let entry = entry?;
97113 let path = entry. path ( ) ;
98114
99115 if path. extension ( ) . and_then ( |s| s. to_str ( ) ) == Some ( "yml" )
100- || path. extension ( ) . and_then ( |s| s. to_str ( ) ) == Some ( "yaml" ) {
101-
116+ || path. extension ( ) . and_then ( |s| s. to_str ( ) ) == Some ( "yaml" )
117+ {
102118 let content = std:: fs:: read_to_string ( & path) ?;
103119 let workflow: ForgejoWorkflow = serde_yaml:: from_str ( & content) ?;
104120
105121 if let Some ( job) = workflow. jobs . get ( job_name) {
106122 println ! ( "{}" , format!( "Executing job: {}" , job_name) . green( ) . bold( ) ) ;
107- println ! ( "Runs on: {}" , job. runs_on. as_deref( ) . unwrap_or( "N/A" ) . blue( ) ) ;
123+ println ! (
124+ "Runs on: {}" ,
125+ job. runs_on. as_deref( ) . unwrap_or( "N/A" ) . blue( )
126+ ) ;
108127
109128 if let Some ( container) = & job. container {
110129 println ! ( "Container: {}" , container. dimmed( ) ) ;
@@ -118,12 +137,19 @@ pub async fn run_job(path: &PathBuf, job_name: &str) -> Result<()> {
118137 } else if let Some ( uses) = & step. uses {
119138 println ! ( " {}. Uses: {}" , i + 1 , uses. dimmed( ) ) ;
120139 } else if let Some ( run) = & step. run {
121- println ! ( " {}. Run: {}" , i + 1 , run. lines( ) . next( ) . unwrap_or( "" ) . dimmed( ) ) ;
140+ println ! (
141+ " {}. Run: {}" ,
142+ i + 1 ,
143+ run. lines( ) . next( ) . unwrap_or( "" ) . dimmed( )
144+ ) ;
122145 }
123146 }
124147 }
125148
126- println ! ( "\n {}" , "Note: Actual execution is not yet implemented." . yellow( ) ) ;
149+ println ! (
150+ "\n {}" ,
151+ "Note: Actual execution is not yet implemented." . yellow( )
152+ ) ;
127153 println ! ( "This would execute the above steps in the specified environment." ) ;
128154 return Ok ( ( ) ) ;
129155 }
0 commit comments