Replace one more copy-pasted clippy_project_root fn

This commit is contained in:
Philipp Hansch 2020-01-31 07:30:44 +01:00
parent 3036a2c30e
commit 3f2532b904
No known key found for this signature in database
GPG key ID: 82AA61CAA11397E6

View file

@ -1,8 +1,9 @@
use clippy_dev::clippy_project_root;
use std::fs::{File, OpenOptions}; use std::fs::{File, OpenOptions};
use std::io; use std::io;
use std::io::prelude::*; use std::io::prelude::*;
use std::io::ErrorKind; use std::io::ErrorKind;
use std::path::{Path, PathBuf}; use std::path::Path;
pub fn create(pass: Option<&str>, lint_name: Option<&str>, category: Option<&str>) -> Result<(), io::Error> { pub fn create(pass: Option<&str>, lint_name: Option<&str>, category: Option<&str>) -> Result<(), io::Error> {
let pass = pass.expect("`pass` argument is validated by clap"); let pass = pass.expect("`pass` argument is validated by clap");
@ -55,7 +56,7 @@ pub fn create(pass: Option<&str>, lint_name: Option<&str>, category: Option<&str
} }
fn open_files(lint_name: &str) -> Result<(File, File), io::Error> { fn open_files(lint_name: &str) -> Result<(File, File), io::Error> {
let project_root = project_root()?; let project_root = clippy_project_root();
let test_file_path = project_root.join("tests").join("ui").join(format!("{}.rs", lint_name)); let test_file_path = project_root.join("tests").join("ui").join(format!("{}.rs", lint_name));
let lint_file_path = project_root let lint_file_path = project_root
@ -82,24 +83,6 @@ fn open_files(lint_name: &str) -> Result<(File, File), io::Error> {
Ok((test_file, lint_file)) Ok((test_file, lint_file))
} }
fn project_root() -> Result<PathBuf, io::Error> {
let current_dir = std::env::current_dir()?;
for path in current_dir.ancestors() {
let result = std::fs::read_to_string(path.join("Cargo.toml"));
if let Err(err) = &result {
if err.kind() == io::ErrorKind::NotFound {
continue;
}
}
let content = result?;
if content.contains("[package]\nname = \"clippy\"") {
return Ok(path.to_path_buf());
}
}
Err(io::Error::new(ErrorKind::Other, "Unable to find project root"))
}
fn to_camel_case(name: &str) -> String { fn to_camel_case(name: &str) -> String {
name.split('_') name.split('_')
.map(|s| { .map(|s| {