@@ -13,12 +13,12 @@ use cargo::core::{Package, TargetKind};
13
13
use rustc_serialize:: json:: { Json , ToJson } ;
14
14
use slug:: slugify;
15
15
use reqwest:: Client ;
16
- use reqwest:: header:: { Accept , qitem } ;
16
+ use reqwest:: header:: ACCEPT ;
17
17
use semver;
18
18
use postgres:: Connection ;
19
19
use time;
20
20
use error:: Result ;
21
-
21
+ use failure :: err_msg ;
22
22
23
23
/// Adds a package into database.
24
24
///
@@ -197,11 +197,11 @@ pub fn add_build_into_database(conn: &Connection,
197
197
198
198
fn initialize_package_in_database ( conn : & Connection , pkg : & Package ) -> Result < i32 > {
199
199
let mut rows = try!( conn. query ( "SELECT id FROM crates WHERE name = $1" ,
200
- & [ & pkg. manifest ( ) . name ( ) ] ) ) ;
200
+ & [ & pkg. manifest ( ) . name ( ) . as_str ( ) ] ) ) ;
201
201
// insert crate into database if it is not exists
202
202
if rows. len ( ) == 0 {
203
203
rows = try!( conn. query ( "INSERT INTO crates (name) VALUES ($1) RETURNING id" ,
204
- & [ & pkg. manifest ( ) . name ( ) ] ) ) ;
204
+ & [ & pkg. manifest ( ) . name ( ) . as_str ( ) ] ) ) ;
205
205
}
206
206
Ok ( rows. get ( 0 ) . get ( 0 ) )
207
207
}
@@ -212,7 +212,7 @@ fn initialize_package_in_database(conn: &Connection, pkg: &Package) -> Result<i3
212
212
fn convert_dependencies ( pkg : & Package ) -> Vec < ( String , String ) > {
213
213
let mut dependencies: Vec < ( String , String ) > = Vec :: new ( ) ;
214
214
for dependency in pkg. manifest ( ) . dependencies ( ) {
215
- let name = dependency. name ( ) . to_string ( ) ;
215
+ let name = dependency. package_name ( ) . to_string ( ) ;
216
216
let version = format ! ( "{}" , dependency. version_req( ) ) ;
217
217
dependencies. push ( ( name, version) ) ;
218
218
}
@@ -222,7 +222,7 @@ fn convert_dependencies(pkg: &Package) -> Vec<(String, String)> {
222
222
223
223
/// Reads readme if there is any read defined in Cargo.toml of a Package
224
224
fn get_readme ( pkg : & Package ) -> Result < Option < String > > {
225
- let readme_path = PathBuf :: from ( try!( source_path ( & pkg) . ok_or ( "File not found" ) ) )
225
+ let readme_path = PathBuf :: from ( try!( source_path ( & pkg) . ok_or_else ( || err_msg ( "File not found" ) ) ) )
226
226
. join ( pkg. manifest ( ) . metadata ( ) . readme . clone ( ) . unwrap_or ( "README.md" . to_owned ( ) ) ) ;
227
227
228
228
if !readme_path. exists ( ) {
@@ -237,11 +237,11 @@ fn get_readme(pkg: &Package) -> Result<Option<String>> {
237
237
238
238
239
239
fn get_rustdoc ( pkg : & Package ) -> Result < Option < String > > {
240
- if pkg. manifest ( ) . targets ( ) [ 0 ] . src_path ( ) . is_absolute ( ) {
241
- read_rust_doc ( pkg. manifest ( ) . targets ( ) [ 0 ] . src_path ( ) )
240
+ if pkg. manifest ( ) . targets ( ) [ 0 ] . src_path ( ) . path ( ) . is_absolute ( ) {
241
+ read_rust_doc ( pkg. manifest ( ) . targets ( ) [ 0 ] . src_path ( ) . path ( ) )
242
242
} else {
243
- let mut path = PathBuf :: from ( try!( source_path ( & pkg) . ok_or ( "File not found" ) ) ) ;
244
- path. push ( pkg. manifest ( ) . targets ( ) [ 0 ] . src_path ( ) ) ;
243
+ let mut path = PathBuf :: from ( try!( source_path ( & pkg) . ok_or_else ( || err_msg ( "File not found" ) ) ) ) ;
244
+ path. push ( pkg. manifest ( ) . targets ( ) [ 0 ] . src_path ( ) . path ( ) ) ;
245
245
read_rust_doc ( path. as_path ( ) )
246
246
}
247
247
}
@@ -279,41 +279,41 @@ fn get_release_time_yanked_downloads
279
279
pkg. manifest( ) . name( ) ) ;
280
280
// FIXME: There is probably better way to do this
281
281
// and so many unwraps...
282
- let client = try! ( Client :: new ( ) ) ;
282
+ let client = Client :: new ( ) ;
283
283
let mut res = try!( client. get ( & url[ ..] )
284
- . header ( Accept ( vec ! [ qitem ( "application/json" . parse ( ) . unwrap ( ) ) ] ) )
284
+ . header ( ACCEPT , "application/json" )
285
285
. send ( ) ) ;
286
286
let mut body = String :: new ( ) ;
287
287
res. read_to_string ( & mut body) . unwrap ( ) ;
288
288
let json = Json :: from_str ( & body[ ..] ) . unwrap ( ) ;
289
289
let versions = try!( json. as_object ( )
290
290
. and_then ( |o| o. get ( "versions" ) )
291
291
. and_then ( |v| v. as_array ( ) )
292
- . ok_or ( "Not a JSON object" ) ) ;
292
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
293
293
294
294
let ( mut release_time, mut yanked, mut downloads) = ( None , None , None ) ;
295
295
296
296
for version in versions {
297
- let version = try!( version. as_object ( ) . ok_or ( "Not a JSON object" ) ) ;
297
+ let version = try!( version. as_object ( ) . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
298
298
let version_num = try!( version. get ( "num" )
299
299
. and_then ( |v| v. as_string ( ) )
300
- . ok_or ( "Not a JSON object" ) ) ;
300
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
301
301
302
302
if & semver:: Version :: parse ( version_num) . unwrap ( ) == pkg. manifest ( ) . version ( ) {
303
303
let release_time_raw = try!( version. get ( "created_at" )
304
304
. and_then ( |c| c. as_string ( ) )
305
- . ok_or ( "Not a JSON object" ) ) ;
305
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
306
306
release_time = Some ( time:: strptime ( release_time_raw, "%Y-%m-%dT%H:%M:%S" )
307
307
. unwrap ( )
308
308
. to_timespec ( ) ) ;
309
309
310
310
yanked = Some ( try!( version. get ( "yanked" )
311
311
. and_then ( |c| c. as_boolean ( ) )
312
- . ok_or ( "Not a JSON object" ) ) ) ;
312
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ) ;
313
313
314
314
downloads = Some ( try!( version. get ( "downloads" )
315
315
. and_then ( |c| c. as_i64 ( ) )
316
- . ok_or ( "Not a JSON object" ) ) as i32 ) ;
316
+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) as i32 ) ;
317
317
318
318
break ;
319
319
}
@@ -387,9 +387,9 @@ fn add_owners_into_database(conn: &Connection, pkg: &Package, crate_id: &i32) ->
387
387
// owners available in: https://crates.io/api/v1/crates/rand/owners
388
388
let owners_url = format ! ( "https://crates.io/api/v1/crates/{}/owners" ,
389
389
& pkg. manifest( ) . name( ) ) ;
390
- let client = try! ( Client :: new ( ) ) ;
390
+ let client = Client :: new ( ) ;
391
391
let mut res = try!( client. get ( & owners_url[ ..] )
392
- . header ( Accept ( vec ! [ qitem ( "application/json" . parse ( ) . unwrap ( ) ) ] ) )
392
+ . header ( ACCEPT , "application/json" )
393
393
. send ( ) ) ;
394
394
// FIXME: There is probably better way to do this
395
395
// and so many unwraps...
0 commit comments