ralph_workflow/app/
detection.rs1use crate::config::Config;
7use crate::guidelines::ReviewGuidelines;
8use crate::language_detector::ProjectStack;
9use crate::logger::Colors;
10use crate::logger::Logger;
11
12pub fn detect_project_stack(
14 config: &Config,
15 repo_root: &std::path::Path,
16 logger: &Logger,
17 colors: Colors,
18) -> (Option<ProjectStack>, Option<ReviewGuidelines>) {
19 if !config.behavior.auto_detect_stack {
20 return (None, None);
21 }
22
23 match crate::language_detector::detect_stack(repo_root) {
24 Ok(stack) => {
25 logger.info(&format!(
26 "Detected stack: {}{}{}",
27 colors.cyan(),
28 stack.summary(),
29 colors.reset()
30 ));
31 let guidelines = ReviewGuidelines::for_stack(&stack);
32 (Some(stack), Some(guidelines))
33 }
34 Err(e) => {
35 logger.warn(&format!("Could not detect project stack: {e}"));
36 (None, None)
37 }
38 }
39}