Skip to content

Commit 3e548dc

Browse files
Merge pull request #485 from jyn514/deprecated-try
Replace deprecated try! with `?`
2 parents 3fc0676 + 534e662 commit 3e548dc

File tree

9 files changed

+120
-120
lines changed

9 files changed

+120
-120
lines changed

src/db/add_package.rs

+47-47
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,20 @@ pub(crate) fn add_package_into_database(conn: &Connection,
3232
has_examples: bool)
3333
-> Result<i32> {
3434
debug!("Adding package into database");
35-
let crate_id = try!(initialize_package_in_database(&conn, metadata_pkg));
35+
let crate_id = initialize_package_in_database(&conn, metadata_pkg)?;
3636
let dependencies = convert_dependencies(metadata_pkg);
3737
let rustdoc = get_rustdoc(metadata_pkg, source_dir).unwrap_or(None);
3838
let readme = get_readme(metadata_pkg, source_dir).unwrap_or(None);
39-
let (release_time, yanked, downloads) = try!(get_release_time_yanked_downloads(metadata_pkg));
39+
let (release_time, yanked, downloads) = get_release_time_yanked_downloads(metadata_pkg)?;
4040
let is_library = metadata_pkg.is_library();
4141
let metadata = Metadata::from_source_dir(source_dir)?;
4242

4343
let release_id: i32 = {
44-
let rows = try!(conn.query("SELECT id FROM releases WHERE crate_id = $1 AND version = $2",
45-
&[&crate_id, &format!("{}", metadata_pkg.version)]));
44+
let rows = conn.query("SELECT id FROM releases WHERE crate_id = $1 AND version = $2",
45+
&[&crate_id, &format!("{}", metadata_pkg.version)])?;
4646

4747
if rows.len() == 0 {
48-
let rows = try!(conn.query("INSERT INTO releases (
48+
let rows = conn.query("INSERT INTO releases (
4949
crate_id, version, release_time,
5050
dependencies, target_name, yanked, build_status,
5151
rustdoc_status, test_status, license, repository_url,
@@ -83,12 +83,12 @@ pub(crate) fn add_package_into_database(conn: &Connection,
8383
&is_library,
8484
&res.rustc_version,
8585
&metadata_pkg.documentation,
86-
&metadata.default_target]));
86+
&metadata.default_target])?;
8787
// return id
8888
rows.get(0).get(0)
8989

9090
} else {
91-
try!(conn.query("UPDATE releases
91+
conn.query("UPDATE releases
9292
SET release_time = $3,
9393
dependencies = $4,
9494
target_name = $5,
@@ -137,22 +137,22 @@ pub(crate) fn add_package_into_database(conn: &Connection,
137137
&is_library,
138138
&res.rustc_version,
139139
&metadata_pkg.documentation,
140-
&metadata.default_target]));
140+
&metadata.default_target])?;
141141
rows.get(0).get(0)
142142
}
143143
};
144144

145145

146-
try!(add_keywords_into_database(&conn, &metadata_pkg, &release_id));
147-
try!(add_authors_into_database(&conn, &metadata_pkg, &release_id));
148-
try!(add_owners_into_database(&conn, &metadata_pkg, &crate_id));
146+
add_keywords_into_database(&conn, &metadata_pkg, &release_id)?;
147+
add_authors_into_database(&conn, &metadata_pkg, &release_id)?;
148+
add_owners_into_database(&conn, &metadata_pkg, &crate_id)?;
149149

150150

151151
// Update versions
152152
{
153153
let metadata_version = Version::parse(&metadata_pkg.version)?;
154-
let mut versions: Json = try!(conn.query("SELECT versions FROM crates WHERE id = $1",
155-
&[&crate_id]))
154+
let mut versions: Json = conn.query("SELECT versions FROM crates WHERE id = $1",
155+
&[&crate_id])?
156156
.get(0)
157157
.get(0);
158158
if let Some(versions_array) = versions.as_array_mut() {
@@ -181,7 +181,7 @@ pub(crate) fn add_build_into_database(conn: &Connection,
181181
res: &BuildResult)
182182
-> Result<i32> {
183183
debug!("Adding build into database");
184-
let rows = try!(conn.query("INSERT INTO builds (rid, rustc_version,
184+
let rows = conn.query("INSERT INTO builds (rid, rustc_version,
185185
cratesfyi_version,
186186
build_status, output)
187187
VALUES ($1, $2, $3, $4, $5)
@@ -190,17 +190,17 @@ pub(crate) fn add_build_into_database(conn: &Connection,
190190
&res.rustc_version,
191191
&res.docsrs_version,
192192
&res.successful,
193-
&res.build_log]));
193+
&res.build_log])?;
194194
Ok(rows.get(0).get(0))
195195
}
196196

197197

198198
fn initialize_package_in_database(conn: &Connection, pkg: &MetadataPackage) -> Result<i32> {
199-
let mut rows = try!(conn.query("SELECT id FROM crates WHERE name = $1", &[&pkg.name]));
199+
let mut rows = conn.query("SELECT id FROM crates WHERE name = $1", &[&pkg.name])?;
200200
// insert crate into database if it is not exists
201201
if rows.len() == 0 {
202-
rows = try!(conn.query("INSERT INTO crates (name) VALUES ($1) RETURNING id",
203-
&[&pkg.name]));
202+
rows = conn.query("INSERT INTO crates (name) VALUES ($1) RETURNING id",
203+
&[&pkg.name])?;
204204
}
205205
Ok(rows.get(0).get(0))
206206
}
@@ -228,9 +228,9 @@ fn get_readme(pkg: &MetadataPackage, source_dir: &Path) -> Result<Option<String>
228228
return Ok(None);
229229
}
230230

231-
let mut reader = try!(fs::File::open(readme_path).map(|f| BufReader::new(f)));
231+
let mut reader = fs::File::open(readme_path).map(|f| BufReader::new(f))?;
232232
let mut readme = String::new();
233-
try!(reader.read_to_string(&mut readme));
233+
reader.read_to_string(&mut readme)?;
234234

235235
if readme.is_empty() {
236236
Ok(None)
@@ -259,11 +259,11 @@ fn get_rustdoc(pkg: &MetadataPackage, source_dir: &Path) -> Result<Option<String
259259

260260
/// Reads rustdoc from library
261261
fn read_rust_doc(file_path: &Path) -> Result<Option<String>> {
262-
let reader = try!(fs::File::open(file_path).map(|f| BufReader::new(f)));
262+
let reader = fs::File::open(file_path).map(|f| BufReader::new(f))?;
263263
let mut rustdoc = String::new();
264264

265265
for line in reader.lines() {
266-
let line = try!(line);
266+
let line = line?;
267267
if line.starts_with("//!") {
268268
// some lines may or may not have a space between the `//!` and the start of the text
269269
let line = line.trim_start_matches("//!").trim_start();
@@ -293,40 +293,40 @@ fn get_release_time_yanked_downloads(
293293
// FIXME: There is probably better way to do this
294294
// and so many unwraps...
295295
let client = Client::new();
296-
let mut res = try!(client.get(&url[..])
296+
let mut res = client.get(&url[..])
297297
.header(ACCEPT, "application/json")
298-
.send());
298+
.send()?;
299299
let mut body = String::new();
300300
res.read_to_string(&mut body).unwrap();
301301
let json = Json::from_str(&body[..]).unwrap();
302-
let versions = try!(json.as_object()
302+
let versions = json.as_object()
303303
.and_then(|o| o.get("versions"))
304304
.and_then(|v| v.as_array())
305-
.ok_or_else(|| err_msg("Not a JSON object")));
305+
.ok_or_else(|| err_msg("Not a JSON object"))?;
306306

307307
let (mut release_time, mut yanked, mut downloads) = (None, None, None);
308308

309309
for version in versions {
310-
let version = try!(version.as_object().ok_or_else(|| err_msg("Not a JSON object")));
311-
let version_num = try!(version.get("num")
310+
let version = version.as_object().ok_or_else(|| err_msg("Not a JSON object"))?;
311+
let version_num = version.get("num")
312312
.and_then(|v| v.as_string())
313-
.ok_or_else(|| err_msg("Not a JSON object")));
313+
.ok_or_else(|| err_msg("Not a JSON object"))?;
314314

315315
if semver::Version::parse(version_num).unwrap().to_string() == pkg.version {
316-
let release_time_raw = try!(version.get("created_at")
316+
let release_time_raw = version.get("created_at")
317317
.and_then(|c| c.as_string())
318-
.ok_or_else(|| err_msg("Not a JSON object")));
318+
.ok_or_else(|| err_msg("Not a JSON object"))?;
319319
release_time = Some(time::strptime(release_time_raw, "%Y-%m-%dT%H:%M:%S")
320320
.unwrap()
321321
.to_timespec());
322322

323-
yanked = Some(try!(version.get("yanked")
323+
yanked = Some(version.get("yanked")
324324
.and_then(|c| c.as_boolean())
325-
.ok_or_else(|| err_msg("Not a JSON object"))));
325+
.ok_or_else(|| err_msg("Not a JSON object"))?);
326326

327-
downloads = Some(try!(version.get("downloads")
327+
downloads = Some(version.get("downloads")
328328
.and_then(|c| c.as_i64())
329-
.ok_or_else(|| err_msg("Not a JSON object"))) as i32);
329+
.ok_or_else(|| err_msg("Not a JSON object"))? as i32);
330330

331331
break;
332332
}
@@ -341,12 +341,12 @@ fn add_keywords_into_database(conn: &Connection, pkg: &MetadataPackage, release_
341341
for keyword in &pkg.keywords {
342342
let slug = slugify(&keyword);
343343
let keyword_id: i32 = {
344-
let rows = try!(conn.query("SELECT id FROM keywords WHERE slug = $1", &[&slug]));
344+
let rows = conn.query("SELECT id FROM keywords WHERE slug = $1", &[&slug])?;
345345
if rows.len() > 0 {
346346
rows.get(0).get(0)
347347
} else {
348-
try!(conn.query("INSERT INTO keywords (name, slug) VALUES ($1, $2) RETURNING id",
349-
&[&keyword, &slug]))
348+
conn.query("INSERT INTO keywords (name, slug) VALUES ($1, $2) RETURNING id",
349+
&[&keyword, &slug])?
350350
.get(0)
351351
.get(0)
352352
}
@@ -372,13 +372,13 @@ fn add_authors_into_database(conn: &Connection, pkg: &MetadataPackage, release_i
372372
let slug = slugify(&author);
373373

374374
let author_id: i32 = {
375-
let rows = try!(conn.query("SELECT id FROM authors WHERE slug = $1", &[&slug]));
375+
let rows = conn.query("SELECT id FROM authors WHERE slug = $1", &[&slug])?;
376376
if rows.len() > 0 {
377377
rows.get(0).get(0)
378378
} else {
379-
try!(conn.query("INSERT INTO authors (name, email, slug) VALUES ($1, $2, $3)
379+
conn.query("INSERT INTO authors (name, email, slug) VALUES ($1, $2, $3)
380380
RETURNING id",
381-
&[&author, &email, &slug]))
381+
&[&author, &email, &slug])?
382382
.get(0)
383383
.get(0)
384384
}
@@ -400,14 +400,14 @@ fn add_owners_into_database(conn: &Connection, pkg: &MetadataPackage, crate_id:
400400
// owners available in: https://crates.io/api/v1/crates/rand/owners
401401
let owners_url = format!("https://crates.io/api/v1/crates/{}/owners", pkg.name);
402402
let client = Client::new();
403-
let mut res = try!(client.get(&owners_url[..])
403+
let mut res = client.get(&owners_url[..])
404404
.header(ACCEPT, "application/json")
405-
.send());
405+
.send()?;
406406
// FIXME: There is probably better way to do this
407407
// and so many unwraps...
408408
let mut body = String::new();
409409
res.read_to_string(&mut body).unwrap();
410-
let json = try!(Json::from_str(&body[..]));
410+
let json = Json::from_str(&body[..])?;
411411

412412
if let Some(owners) = json.as_object()
413413
.and_then(|j| j.get("users"))
@@ -436,14 +436,14 @@ fn add_owners_into_database(conn: &Connection, pkg: &MetadataPackage, crate_id:
436436
}
437437

438438
let owner_id: i32 = {
439-
let rows = try!(conn.query("SELECT id FROM owners WHERE login = $1", &[&login]));
439+
let rows = conn.query("SELECT id FROM owners WHERE login = $1", &[&login])?;
440440
if rows.len() > 0 {
441441
rows.get(0).get(0)
442442
} else {
443-
try!(conn.query("INSERT INTO owners (login, avatar, name, email)
443+
conn.query("INSERT INTO owners (login, avatar, name, email)
444444
VALUES ($1, $2, $3, $4)
445445
RETURNING id",
446-
&[&login, &avatar, &name, &email]))
446+
&[&login, &avatar, &name, &email])?
447447
.get(0)
448448
.get(0)
449449
}

src/db/file.rs

+22-22
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ fn get_file_list_from_dir<P: AsRef<Path>>(path: P,
2626
-> Result<()> {
2727
let path = path.as_ref();
2828

29-
for file in try!(path.read_dir()) {
30-
let file = try!(file);
29+
for file in path.read_dir()? {
30+
let file = file?;
3131

32-
if try!(file.file_type()).is_file() {
32+
if file.file_type()?.is_file() {
3333
files.push(file.path());
34-
} else if try!(file.file_type()).is_dir() {
35-
try!(get_file_list_from_dir(file.path(), files));
34+
} else if file.file_type()?.is_dir() {
35+
get_file_list_from_dir(file.path(), files)?;
3636
}
3737
}
3838

@@ -49,7 +49,7 @@ pub fn get_file_list<P: AsRef<Path>>(path: P) -> Result<Vec<PathBuf>> {
4949
} else if path.is_file() {
5050
files.push(PathBuf::from(path.file_name().unwrap()));
5151
} else if path.is_dir() {
52-
try!(get_file_list_from_dir(path, &mut files));
52+
get_file_list_from_dir(path, &mut files)?;
5353
for file_path in &mut files {
5454
// We want the paths in this list to not be {path}/bar.txt but just bar.txt
5555
*file_path = PathBuf::from(file_path.strip_prefix(path).unwrap());
@@ -145,10 +145,10 @@ pub fn add_path_into_database<P: AsRef<Path>>(conn: &Connection,
145145
path: P)
146146
-> Result<Json> {
147147
use magic::{Cookie, flags};
148-
let cookie = try!(Cookie::open(flags::MIME_TYPE));
149-
try!(cookie.load::<&str>(&[]));
148+
let cookie = Cookie::open(flags::MIME_TYPE)?;
149+
cookie.load::<&str>(&[])?;
150150

151-
let trans = try!(conn.transaction());
151+
let trans = conn.transaction()?;
152152

153153
use std::collections::HashMap;
154154
let mut file_paths_and_mimes: HashMap<PathBuf, String> = HashMap::new();
@@ -157,7 +157,7 @@ pub fn add_path_into_database<P: AsRef<Path>>(conn: &Connection,
157157

158158
let mut rt = ::tokio::runtime::Runtime::new().unwrap();
159159

160-
let mut to_upload = try!(get_file_list(&path));
160+
let mut to_upload = get_file_list(&path)?;
161161
let mut batch_size = cmp::min(to_upload.len(), MAX_CONCURRENT_UPLOADS);
162162
let mut currently_uploading: Vec<_> = to_upload.drain(..batch_size).collect();
163163
let mut attempts = 0;
@@ -176,12 +176,12 @@ pub fn add_path_into_database<P: AsRef<Path>>(conn: &Connection,
176176
Err(_) => continue,
177177
};
178178
let mut content: Vec<u8> = Vec::new();
179-
try!(file.read_to_end(&mut content));
179+
file.read_to_end(&mut content)?;
180180
let bucket_path = Path::new(prefix).join(&file_path)
181181
.into_os_string().into_string().unwrap();
182182

183183
let mime = {
184-
let mime = try!(cookie.buffer(&content));
184+
let mime = cookie.buffer(&content)?;
185185
// css's are causing some problem in browsers
186186
// magic will return text/plain for css file types
187187
// convert them to text/css
@@ -213,15 +213,15 @@ pub fn add_path_into_database<P: AsRef<Path>>(conn: &Connection,
213213
} else {
214214
// If AWS credentials are configured, don't insert/update the database
215215
// check if file already exists in database
216-
let rows = try!(conn.query("SELECT COUNT(*) FROM files WHERE path = $1", &[&bucket_path]));
216+
let rows = conn.query("SELECT COUNT(*) FROM files WHERE path = $1", &[&bucket_path])?;
217217

218218
if rows.get(0).get::<usize, i64>(0) == 0 {
219-
try!(trans.query("INSERT INTO files (path, mime, content) VALUES ($1, $2, $3)",
220-
&[&bucket_path, &mime, &content]));
219+
trans.query("INSERT INTO files (path, mime, content) VALUES ($1, $2, $3)",
220+
&[&bucket_path, &mime, &content])?;
221221
} else {
222-
try!(trans.query("UPDATE files SET mime = $2, content = $3, date_updated = NOW() \
222+
trans.query("UPDATE files SET mime = $2, content = $3, date_updated = NOW() \
223223
WHERE path = $1",
224-
&[&bucket_path, &mime, &content]));
224+
&[&bucket_path, &mime, &content])?;
225225
}
226226
}
227227

@@ -248,7 +248,7 @@ pub fn add_path_into_database<P: AsRef<Path>>(conn: &Connection,
248248
}
249249
}
250250

251-
try!(trans.commit());
251+
trans.commit()?;
252252

253253
let file_list_with_mimes: Vec<(String, PathBuf)> = file_paths_and_mimes
254254
.into_iter()
@@ -274,12 +274,12 @@ fn file_list_to_json(file_list: Vec<(String, PathBuf)>) -> Result<Json> {
274274
}
275275

276276
pub fn move_to_s3(conn: &Connection, n: usize) -> Result<usize> {
277-
let trans = try!(conn.transaction());
277+
let trans = conn.transaction()?;
278278
let client = s3_client().expect("configured s3");
279279

280-
let rows = try!(trans.query(
280+
let rows = trans.query(
281281
&format!("SELECT path, mime, content FROM files WHERE content != E'in-s3' LIMIT {}", n),
282-
&[]));
282+
&[])?;
283283
let count = rows.len();
284284

285285
let mut rt = ::tokio::runtime::Runtime::new().unwrap();
@@ -315,7 +315,7 @@ pub fn move_to_s3(conn: &Connection, n: usize) -> Result<usize> {
315315
}
316316
}
317317

318-
try!(trans.commit());
318+
trans.commit()?;
319319

320320
Ok(count)
321321
}

0 commit comments

Comments
 (0)