diff options
author | Tim Mulqueen <Multimo@users.noreply.github.com> | 2019-05-12 13:37:23 -0400 |
---|---|---|
committer | Matan Kushner <hello@matchai.me> | 2019-05-12 13:37:23 -0400 |
commit | 5fd715e7c30420ced129a41a1765919b31528cc6 (patch) | |
tree | f7284f4797f30757826d3487631444f0bf005a4d /src/modules/python.rs | |
parent | d3ce00c5163b1c6a2b3bc510f8900d51f5320d54 (diff) |
Implement directory scanner (#34)
Diffstat (limited to 'src/modules/python.rs')
-rw-r--r-- | src/modules/python.rs | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/src/modules/python.rs b/src/modules/python.rs index 70625a47c..fdab440e3 100644 --- a/src/modules/python.rs +++ b/src/modules/python.rs @@ -1,5 +1,4 @@ use ansi_term::Color; -use std::path::PathBuf; use std::process::Command; use super::{Context, Module}; @@ -12,7 +11,17 @@ use super::{Context, Module}; /// - Current directory contains a `requirements.txt` file /// - Current directory contains a `pyproject.toml` file pub fn segment(context: &Context) -> Option<Module> { - let is_py_project = context.dir_files.iter().any(has_py_files); + let is_py_project = context + .new_scan_dir() + .set_files(&[ + "requirements.txt", + ".python-version", + "pyproject.toml", + "pyproject.toml", + ]) + .set_extensions(&["py"]) + .scan(); + if !is_py_project { return None; } @@ -35,25 +44,6 @@ pub fn segment(context: &Context) -> Option<Module> { } } -fn has_py_files(dir_entry: &PathBuf) -> bool { - let is_py_file = - |d: &PathBuf| -> bool { d.is_file() && d.extension().unwrap_or_default() == "py" }; - let is_python_version = |d: &PathBuf| -> bool { - d.is_file() && d.file_name().unwrap_or_default() == ".python-version" - }; - let is_requirements_txt = |d: &PathBuf| -> bool { - d.is_file() && d.file_name().unwrap_or_default() == "requirements.txt" - }; - let is_py_project = |d: &PathBuf| -> bool { - d.is_file() && d.file_name().unwrap_or_default() == "pyproject.toml" - }; - - is_py_file(&dir_entry) - || is_python_version(&dir_entry) - || is_requirements_txt(&dir_entry) - || is_py_project(&dir_entry) -} - fn get_python_version() -> Option<String> { match Command::new("python").arg("--version").output() { Ok(output) => Some(String::from_utf8(output.stdout).unwrap()), |