@@ -2,6 +2,7 @@ use core::fmt;
22use std:: { fs:: File , path:: PathBuf } ;
33
44use error_stack:: { Context , Result , ResultExt } ;
5+ use serde:: { Deserialize , Serialize } ;
56
67use crate :: {
78 cache:: { Cache , Caching , file:: GlobalCache , noop:: NoopCache } ,
@@ -10,6 +11,50 @@ use crate::{
1011 project_builder:: ProjectBuilder ,
1112} ;
1213
14+ pub fn validate ( run_config : & RunConfig , _file_paths : Vec < String > ) -> RunResult {
15+ let runner = match Runner :: new ( run_config. clone ( ) ) {
16+ Ok ( runner) => runner,
17+ Err ( err) => {
18+ return RunResult {
19+ io_errors : vec ! [ err. to_string( ) ] ,
20+ ..Default :: default ( )
21+ } ;
22+ }
23+ } ;
24+ match runner. validate ( ) {
25+ Ok ( _) => RunResult :: default ( ) ,
26+ Err ( err) => RunResult {
27+ validate_errors : vec ! [ err. to_string( ) ] ,
28+ ..Default :: default ( )
29+ } ,
30+ }
31+ }
32+
33+ pub fn generate_and_validate ( run_config : & RunConfig ) -> RunResult {
34+ let runner = match Runner :: new ( run_config. clone ( ) ) {
35+ Ok ( runner) => runner,
36+ Err ( err) => {
37+ return RunResult {
38+ io_errors : vec ! [ err. to_string( ) ] ,
39+ ..Default :: default ( )
40+ } ;
41+ }
42+ } ;
43+ match runner. generate_and_validate ( ) {
44+ Ok ( _) => RunResult :: default ( ) ,
45+ Err ( err) => RunResult {
46+ validate_errors : vec ! [ err. to_string( ) ] ,
47+ ..Default :: default ( )
48+ } ,
49+ }
50+ }
51+ #[ derive( Debug , Default , Serialize , Deserialize ) ]
52+ pub struct RunResult {
53+ pub validate_errors : Vec < String > ,
54+ pub io_errors : Vec < String > ,
55+ pub info_messages : Vec < String > ,
56+ }
57+ #[ derive( Debug , Clone ) ]
1358pub struct RunConfig {
1459 pub project_root : PathBuf ,
1560 pub codeowners_file_path : PathBuf ,
0 commit comments