@@ -66,30 +66,35 @@ async fn main() -> Result<()> {
6666
6767 let manifest: Manifest = toml:: from_slice ( & fs_content) ?;
6868 let mut bundle: Option < Bundle > = None ;
69+ let mut from_time: Option < i64 > = None ;
6970
7071 if matches. is_present ( "bundle" ) {
7172 let bundle_str = std:: fs:: read ( matches. value_of ( "bundle" ) . unwrap ( ) ) ?;
7273
73- bundle = Some ( serde_json:: from_slice ( & bundle_str) ?) ;
74+ let parsed_bundle: Bundle = serde_json:: from_slice ( & bundle_str) ?;
75+
76+ if let Some ( version) = & parsed_bundle. version {
77+ from_time = Some ( version. time ) ;
78+ }
79+
80+ bundle = Some ( parsed_bundle) ;
7481 }
7582
7683 match manifest. source . r#type {
77- // SourceType::Git => {
78-
79- // },
80- _ => {
84+ SourceType :: Git => {
8185 let mut walker = Walker :: from_remote (
8286 & manifest. source . repository . clone ( ) . unwrap ( ) ,
8387 & manifest. meta . name ,
8488 manifest. source . patterns . clone ( ) . unwrap ( ) ,
8589 ) ?;
8690
87- let git = accessors:: Git :: from_walker ( None , & mut walker) ?;
91+ let git = accessors:: Git :: from_walker ( from_time , & mut walker) ?;
8892
8993 let b = iterate_chronicles ( git, manifest, bundle) . await ?;
9094
9195 write_to_disk ( fs_out, b) ?;
9296 }
97+ _ => ( ) ,
9398 } ;
9499
95100 Ok ( ( ) )
@@ -105,12 +110,12 @@ where
105110 version : None ,
106111 } ) ;
107112
108- for chronicle in i {
113+ let mut iter = i. peekable ( ) ;
114+
115+ while let Some ( chronicle) = iter. next ( ) {
109116 let version = chronicle. version ;
110117
111118 for ( file_name, v) in chronicle. files {
112- println ! ( "processing {} @ {}" , file_name, version. clone( ) . unwrap( ) . hash) ;
113-
114119 let alternator_strand = match alternator:: consume ( file_name. clone ( ) , v) . await {
115120 Ok ( o) => o,
116121 // If it errors, we'll continue
@@ -195,6 +200,12 @@ where
195200 }
196201 }
197202 }
203+
204+ // If this is the last iteration of chronicles
205+ // Set the bundle's version to the last commit processed
206+ if iter. peek ( ) . is_none ( ) {
207+ bundle. version = version. clone ( ) ;
208+ }
198209 }
199210
200211 Ok ( bundle)
0 commit comments