Skip to content

Commit

Permalink
Replace one more copy-pasted clippy_project_root fn
Browse files Browse the repository at this point in the history
  • Loading branch information
phansch committed Jan 31, 2020
1 parent 3036a2c commit 3f2532b
Showing 1 changed file with 3 additions and 20 deletions.
23 changes: 3 additions & 20 deletions clippy_dev/src/new_lint.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
use clippy_dev::clippy_project_root;
use std::fs::{File, OpenOptions};
use std::io;
use std::io::prelude::*;
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> {
let pass = pass.expect("`pass` argument is validated by clap");
Expand Down Expand Up @@ -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> {
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 lint_file_path = project_root
Expand All @@ -82,24 +83,6 @@ fn open_files(lint_name: &str) -> Result<(File, File), io::Error> {
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 {
name.split('_')
.map(|s| {
Expand Down

0 comments on commit 3f2532b

Please sign in to comment.