@@ -17,46 +17,13 @@ struct Cli {
1717 resolve : resolve:: Args ,
1818}
1919
20- fn main ( ) {
20+ fn main ( ) -> anyhow :: Result < ( ) > {
2121 if env:: var ( "HERMES_UI_TEST_MODE" ) . is_ok ( ) {
2222 ui_test_shim:: run ( ) ;
23- return ;
23+ return Ok ( ( ) ) ;
2424 }
2525
2626 let args = Cli :: parse ( ) ;
27-
28- // TODO: Better error handling than `.unwrap()`.
29- let roots = resolve:: resolve_roots ( & args. resolve ) . unwrap ( ) ;
30-
31- // TODO: What artifacts need to be updated (not just copied)? E.g., do we
32- // need to update `Cargo.toml` to rewrite relative paths?
33-
34- // TODO: From each root, parse and walk referenced modules.
35- let mut has_errors = false ;
36- for ( package, kind, path) in roots. roots {
37- let mut edits = Vec :: new ( ) ;
38- let res = parse:: read_file_and_scan_compilation_unit ( & path, |_src, res| {
39- if let Err ( e) = res {
40- has_errors = true ;
41- eprint ! ( "{:?}" , miette:: Report :: new( e) ) ;
42- } else if let Ok ( item) = res {
43- transform:: append_edits ( & item, & mut edits) ;
44- }
45- } ) ;
46-
47- let ( source, unloaded_modules) = res. unwrap_or_else ( |e| {
48- eprintln ! ( "Error parsing file: {}" , e) ;
49- exit ( 1 ) ;
50- } ) ;
51-
52- if has_errors {
53- exit ( 1 ) ;
54- }
55-
56- let mut source = source. into_bytes ( ) ;
57- transform:: apply_edits ( & mut source, & edits) ;
58- }
59-
60- // TODO: Create shadow skeleton.
61- // shadow::create_shadow_skeleton(&roots.workspace, &roots.shadow_root, &roots.cargo_target_dir, todo!()).unwrap();
27+ let roots = resolve:: resolve_roots ( & args. resolve ) ?;
28+ shadow:: build_shadow_crate ( & roots)
6229}
0 commit comments