@@ -9,14 +9,14 @@ use log::{debug, error};
9
9
10
10
impl DocBuilder {
11
11
/// Updates crates.io-index repository and adds new crates into build queue.
12
- /// Returns size of queue
12
+ /// Returns the number of crates added
13
13
pub fn get_new_crates ( & mut self ) -> Result < usize > {
14
14
let conn = connect_db ( ) ?;
15
15
let index = Index :: from_path_or_cloned ( & self . options . crates_io_index_path ) ?;
16
- let mut changes = index. fetch_changes ( ) ?;
17
- let mut add_count : usize = 0 ;
16
+ let ( mut changes, oid ) = index. peek_changes ( ) ?;
17
+ let mut crates_added = 0 ;
18
18
19
- // I belive this will fix ordering of queue if we get more than one crate from changes
19
+ // I believe this will fix ordering of queue if we get more than one crate from changes
20
20
changes. reverse ( ) ;
21
21
22
22
for krate in & changes {
@@ -41,17 +41,27 @@ impl DocBuilder {
41
41
) ,
42
42
}
43
43
}
44
+
44
45
ChangeKind :: Added => {
45
46
let priority = get_crate_priority ( & conn, & krate. name ) ?;
46
- add_crate_to_queue ( & conn, & krate. name , & krate. version , priority) . ok ( ) ;
47
47
48
- debug ! ( "{}-{} added into build queue" , krate. name, krate. version) ;
49
- add_count += 1 ;
48
+ match add_crate_to_queue ( & conn, & krate. name , & krate. version , priority) {
49
+ Ok ( ( ) ) => {
50
+ debug ! ( "{}-{} added into build queue" , krate. name, krate. version) ;
51
+ crates_added += 1 ;
52
+ }
53
+ Err ( err) => error ! (
54
+ "failed adding {}-{} into build queue: {}" ,
55
+ krate. name, krate. version, err
56
+ ) ,
57
+ }
50
58
}
51
59
}
52
60
}
53
61
54
- Ok ( add_count)
62
+ index. set_last_seen_reference ( oid) ?;
63
+
64
+ Ok ( crates_added)
55
65
}
56
66
57
67
pub fn get_queue_count ( & self ) -> Result < i64 > {
0 commit comments