@@ -13,12 +13,12 @@ use cargo::core::{Package, TargetKind};
1313use rustc_serialize:: json:: { Json , ToJson } ;
1414use slug:: slugify;
1515use reqwest:: Client ;
16- use reqwest:: header:: { Accept , qitem } ;
16+ use reqwest:: header:: ACCEPT ;
1717use semver;
1818use postgres:: Connection ;
1919use time;
2020use error:: Result ;
21-
21+ use failure :: err_msg ;
2222
2323/// Adds a package into database.
2424///
@@ -197,11 +197,11 @@ pub fn add_build_into_database(conn: &Connection,
197197
198198fn initialize_package_in_database ( conn : & Connection , pkg : & Package ) -> Result < i32 > {
199199 let mut rows = try!( conn. query ( "SELECT id FROM crates WHERE name = $1" ,
200- & [ & pkg. manifest ( ) . name ( ) ] ) ) ;
200+ & [ & pkg. manifest ( ) . name ( ) . as_str ( ) ] ) ) ;
201201 // insert crate into database if it is not exists
202202 if rows. len ( ) == 0 {
203203 rows = try!( conn. query ( "INSERT INTO crates (name) VALUES ($1) RETURNING id" ,
204- & [ & pkg. manifest ( ) . name ( ) ] ) ) ;
204+ & [ & pkg. manifest ( ) . name ( ) . as_str ( ) ] ) ) ;
205205 }
206206 Ok ( rows. get ( 0 ) . get ( 0 ) )
207207}
@@ -212,7 +212,7 @@ fn initialize_package_in_database(conn: &Connection, pkg: &Package) -> Result<i3
212212fn convert_dependencies ( pkg : & Package ) -> Vec < ( String , String ) > {
213213 let mut dependencies: Vec < ( String , String ) > = Vec :: new ( ) ;
214214 for dependency in pkg. manifest ( ) . dependencies ( ) {
215- let name = dependency. name ( ) . to_string ( ) ;
215+ let name = dependency. package_name ( ) . to_string ( ) ;
216216 let version = format ! ( "{}" , dependency. version_req( ) ) ;
217217 dependencies. push ( ( name, version) ) ;
218218 }
@@ -222,7 +222,7 @@ fn convert_dependencies(pkg: &Package) -> Vec<(String, String)> {
222222
223223/// Reads readme if there is any read defined in Cargo.toml of a Package
224224fn 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" ) ) ) )
226226 . join ( pkg. manifest ( ) . metadata ( ) . readme . clone ( ) . unwrap_or ( "README.md" . to_owned ( ) ) ) ;
227227
228228 if !readme_path. exists ( ) {
@@ -237,11 +237,11 @@ fn get_readme(pkg: &Package) -> Result<Option<String>> {
237237
238238
239239fn 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 ( ) )
242242 } 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 ( ) ) ;
245245 read_rust_doc ( path. as_path ( ) )
246246 }
247247}
@@ -279,41 +279,41 @@ fn get_release_time_yanked_downloads
279279 pkg. manifest( ) . name( ) ) ;
280280 // FIXME: There is probably better way to do this
281281 // and so many unwraps...
282- let client = try! ( Client :: new ( ) ) ;
282+ let client = Client :: new ( ) ;
283283 let mut res = try!( client. get ( & url[ ..] )
284- . header ( Accept ( vec ! [ qitem ( "application/json" . parse ( ) . unwrap ( ) ) ] ) )
284+ . header ( ACCEPT , "application/json" )
285285 . send ( ) ) ;
286286 let mut body = String :: new ( ) ;
287287 res. read_to_string ( & mut body) . unwrap ( ) ;
288288 let json = Json :: from_str ( & body[ ..] ) . unwrap ( ) ;
289289 let versions = try!( json. as_object ( )
290290 . and_then ( |o| o. get ( "versions" ) )
291291 . and_then ( |v| v. as_array ( ) )
292- . ok_or ( "Not a JSON object" ) ) ;
292+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
293293
294294 let ( mut release_time, mut yanked, mut downloads) = ( None , None , None ) ;
295295
296296 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" ) ) ) ;
298298 let version_num = try!( version. get ( "num" )
299299 . and_then ( |v| v. as_string ( ) )
300- . ok_or ( "Not a JSON object" ) ) ;
300+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
301301
302302 if & semver:: Version :: parse ( version_num) . unwrap ( ) == pkg. manifest ( ) . version ( ) {
303303 let release_time_raw = try!( version. get ( "created_at" )
304304 . and_then ( |c| c. as_string ( ) )
305- . ok_or ( "Not a JSON object" ) ) ;
305+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ;
306306 release_time = Some ( time:: strptime ( release_time_raw, "%Y-%m-%dT%H:%M:%S" )
307307 . unwrap ( )
308308 . to_timespec ( ) ) ;
309309
310310 yanked = Some ( try!( version. get ( "yanked" )
311311 . and_then ( |c| c. as_boolean ( ) )
312- . ok_or ( "Not a JSON object" ) ) ) ;
312+ . ok_or_else ( || err_msg ( "Not a JSON object" ) ) ) ) ;
313313
314314 downloads = Some ( try!( version. get ( "downloads" )
315315 . 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 ) ;
317317
318318 break ;
319319 }
@@ -387,9 +387,9 @@ fn add_owners_into_database(conn: &Connection, pkg: &Package, crate_id: &i32) ->
387387 // owners available in: https://crates.io/api/v1/crates/rand/owners
388388 let owners_url = format ! ( "https://crates.io/api/v1/crates/{}/owners" ,
389389 & pkg. manifest( ) . name( ) ) ;
390- let client = try! ( Client :: new ( ) ) ;
390+ let client = Client :: new ( ) ;
391391 let mut res = try!( client. get ( & owners_url[ ..] )
392- . header ( Accept ( vec ! [ qitem ( "application/json" . parse ( ) . unwrap ( ) ) ] ) )
392+ . header ( ACCEPT , "application/json" )
393393 . send ( ) ) ;
394394 // FIXME: There is probably better way to do this
395395 // and so many unwraps...
0 commit comments