Skip to main content

git_global/subcommands/
ignored.rs

1//! The `ignored` subcommand: lists all patterns in global.ignore.
2
3use crate::config::Config;
4use crate::errors::Result;
5use crate::report::Report;
6
7/// Lists all patterns currently in global.ignore.
8pub fn execute(config: Config) -> Result<Report> {
9    let patterns: Vec<&String> = config
10        .ignored_patterns
11        .iter()
12        .filter(|p| !p.is_empty())
13        .collect();
14
15    let mut report = Report::new(&[]);
16    if patterns.is_empty() {
17        report.add_message("No patterns in global.ignore.".to_string());
18        report.add_message(
19            "Use `git global ignore <pattern>` to add one.".to_string(),
20        );
21    } else {
22        report.add_message(format!("Ignored patterns ({}):", patterns.len()));
23        for pattern in patterns {
24            report.add_message(format!("  {}", pattern));
25        }
26    }
27    Ok(report)
28}