@@ -21,34 +21,71 @@ struct Cli {
2121#[ derive( Subcommand ) ]
2222enum Commands {
2323 /// Initialise a new a2mliser.toml manifest.
24- Init { #[ arg( short, long, default_value = "." ) ] path : String } ,
24+ Init {
25+ #[ arg( short, long, default_value = "." ) ]
26+ path : String ,
27+ } ,
2528 /// Validate a a2mliser.toml manifest.
26- Validate { #[ arg( short, long, default_value = "a2mliser.toml" ) ] manifest : String } ,
29+ Validate {
30+ #[ arg( short, long, default_value = "a2mliser.toml" ) ]
31+ manifest : String ,
32+ } ,
2733 /// Generate A2ML wrapper, Zig FFI bridge, and C headers.
2834 Generate {
29- #[ arg( short, long, default_value = "a2mliser.toml" ) ] manifest : String ,
30- #[ arg( short, long, default_value = "generated/a2mliser" ) ] output : String ,
35+ #[ arg( short, long, default_value = "a2mliser.toml" ) ]
36+ manifest : String ,
37+ #[ arg( short, long, default_value = "generated/a2mliser" ) ]
38+ output : String ,
3139 } ,
3240 /// Build the generated artifacts.
33- Build { #[ arg( short, long, default_value = "a2mliser.toml" ) ] manifest : String , #[ arg( long) ] release : bool } ,
41+ Build {
42+ #[ arg( short, long, default_value = "a2mliser.toml" ) ]
43+ manifest : String ,
44+ #[ arg( long) ]
45+ release : bool ,
46+ } ,
3447 /// Run the workload.
3548 Run {
36- #[ arg( short, long, default_value = "a2mliser.toml" ) ] manifest : String ,
37- #[ arg( trailing_var_arg = true ) ] args : Vec < String > ,
49+ #[ arg( short, long, default_value = "a2mliser.toml" ) ]
50+ manifest : String ,
51+ #[ arg( trailing_var_arg = true ) ]
52+ args : Vec < String > ,
3853 } ,
3954 /// Show manifest information.
40- Info { #[ arg( short, long, default_value = "a2mliser.toml" ) ] manifest : String } ,
55+ Info {
56+ #[ arg( short, long, default_value = "a2mliser.toml" ) ]
57+ manifest : String ,
58+ } ,
4159}
4260
4361fn main ( ) -> Result < ( ) > {
4462 let cli = Cli :: parse ( ) ;
4563 match cli. command {
46- Commands :: Init { path } => { manifest:: init_manifest ( & path) ?; }
47- Commands :: Validate { manifest } => { let m = manifest:: load_manifest ( & manifest) ?; manifest:: validate ( & m) ?; println ! ( "Valid: {}" , m. workload. name) ; }
48- Commands :: Generate { manifest, output } => { let m = manifest:: load_manifest ( & manifest) ?; manifest:: validate ( & m) ?; codegen:: generate_all ( & m, & output) ?; }
49- Commands :: Build { manifest, release } => { let m = manifest:: load_manifest ( & manifest) ?; codegen:: build ( & m, release) ?; }
50- Commands :: Run { manifest, args } => { let m = manifest:: load_manifest ( & manifest) ?; codegen:: run ( & m, & args) ?; }
51- Commands :: Info { manifest } => { let m = manifest:: load_manifest ( & manifest) ?; manifest:: print_info ( & m) ; }
64+ Commands :: Init { path } => {
65+ manifest:: init_manifest ( & path) ?;
66+ }
67+ Commands :: Validate { manifest } => {
68+ let m = manifest:: load_manifest ( & manifest) ?;
69+ manifest:: validate ( & m) ?;
70+ println ! ( "Valid: {}" , m. workload. name) ;
71+ }
72+ Commands :: Generate { manifest, output } => {
73+ let m = manifest:: load_manifest ( & manifest) ?;
74+ manifest:: validate ( & m) ?;
75+ codegen:: generate_all ( & m, & output) ?;
76+ }
77+ Commands :: Build { manifest, release } => {
78+ let m = manifest:: load_manifest ( & manifest) ?;
79+ codegen:: build ( & m, release) ?;
80+ }
81+ Commands :: Run { manifest, args } => {
82+ let m = manifest:: load_manifest ( & manifest) ?;
83+ codegen:: run ( & m, & args) ?;
84+ }
85+ Commands :: Info { manifest } => {
86+ let m = manifest:: load_manifest ( & manifest) ?;
87+ manifest:: print_info ( & m) ;
88+ }
5289 }
5390 Ok ( ( ) )
5491}
0 commit comments