@@ -70,30 +70,43 @@ async fn main(_fb: FacebookInit, args: BuildJsonArgs) -> Result<cli::ExitCode> {
7070 Ok ( cli:: ExitCode :: SUCCESS )
7171}
7272
73+ fn decode_scip_data (
74+ env : & mut Env ,
75+ path : & Path ,
76+ default_language : Option < LanguageId > ,
77+ infer_language : bool ,
78+ path_prefix : Option < & str > ,
79+ ) -> Result < ( ) > {
80+ info ! ( "Loading documents from {}" , path. display( ) ) ;
81+ let scip_index = read_scip_file ( path)
82+ . with_context ( || format ! ( "Error opening input file {}" , path. display( ) ) ) ?;
83+ info ! ( "Loaded {} documents" , scip_index. documents. len( ) ) ;
84+
85+ if let Some ( metadata) = scip_index. metadata . into_option ( ) {
86+ env. decode_scip_metadata ( metadata) ;
87+ }
88+ for doc in scip_index. documents {
89+ env. decode_scip_doc ( default_language, infer_language, path_prefix, doc) ?;
90+ }
91+ Ok ( ( ) )
92+ }
93+
7394fn build_json ( args : BuildJsonArgs ) -> Result < ( ) > {
7495 println ! ( "{:?}" , args) ;
7596 let default_language = args
7697 . language
7798 . as_ref ( )
7899 . and_then ( |s| LanguageId :: new ( s) . known ( ) ) ;
79100
80- info ! ( "Loading documents" ) ;
81- let scip_index = read_scip_file ( & args. input )
82- . with_context ( || format ! ( "Error opening input file {}" , args. input. display( ) ) ) ?;
83- info ! ( "Loaded {} documents" , scip_index. documents. len( ) ) ;
84-
85101 let mut env = Env :: new ( ) ;
86- if let Some ( metadata) = scip_index. metadata . into_option ( ) {
87- env. decode_scip_metadata ( metadata) ;
88- }
89- for doc in scip_index. documents {
90- env. decode_scip_doc (
91- default_language,
92- args. infer_language ,
93- args. root_prefix . as_deref ( ) ,
94- doc,
95- ) ?;
96- }
102+ decode_scip_data (
103+ & mut env,
104+ & args. input ,
105+ default_language,
106+ args. infer_language ,
107+ args. root_prefix . as_deref ( ) ,
108+ ) ?;
109+
97110 let shards = if let Some ( shard_size) = args. shard {
98111 let shards = env. output ( ) . shard ( shard_size) ;
99112 // pad the output files for correct numerical sorting
0 commit comments