Factor creating a GlobSet from a Vec<String> out to a utility function.
This commit is contained in:
parent
47b1b7ec51
commit
0d09e2e086
|
@ -4,14 +4,13 @@ use std::{io::Read, process::exit};
|
|||
|
||||
use {
|
||||
color_eyre::{eyre::eyre, Result},
|
||||
globset::{Glob, GlobSetBuilder},
|
||||
hooked_config::{Config, ExitAction},
|
||||
owo_colors::{OwoColorize, Style},
|
||||
subprocess::{Exec, Redirection},
|
||||
supports_color::Stream,
|
||||
};
|
||||
|
||||
use crate::utilities::plural;
|
||||
use crate::utilities::{globset_from_strings, plural};
|
||||
|
||||
/// The `run` subcommand.
|
||||
pub fn hooked_run(config: Config, hook_type: String) -> Result<()> {
|
||||
|
@ -40,14 +39,7 @@ pub fn hooked_run(config: Config, hook_type: String) -> Result<()> {
|
|||
let hook_name = hook.name.unwrap_or_else(|| "Unnamed Hook".to_string());
|
||||
|
||||
if !hook.staged.is_empty() {
|
||||
let globs = {
|
||||
let mut builder = GlobSetBuilder::new();
|
||||
for glob in hook.staged {
|
||||
builder.add(Glob::new(&glob)?);
|
||||
}
|
||||
|
||||
builder.build()?
|
||||
};
|
||||
let globs = globset_from_strings(&hook.staged)?;
|
||||
|
||||
let staged_files = Exec::cmd("git")
|
||||
.args(&["diff", "--name-only", "--cached"])
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
//! Miscellaneous utilities.
|
||||
|
||||
use color_eyre::Result;
|
||||
use globset::{Glob, GlobSet, GlobSetBuilder};
|
||||
|
||||
/// Simple function to create a pluralized string.
|
||||
pub fn plural(count: usize, singular: &str, plural: Option<&str>) -> String {
|
||||
if count == 1 {
|
||||
|
@ -12,3 +15,13 @@ pub fn plural(count: usize, singular: &str, plural: Option<&str>) -> String {
|
|||
|
||||
format!("{singular}s")
|
||||
}
|
||||
|
||||
/// Create a [`GlobSet`] from a list of strings.
|
||||
pub fn globset_from_strings(input: &[String]) -> Result<GlobSet> {
|
||||
let mut builder = GlobSetBuilder::new();
|
||||
for glob in input {
|
||||
builder.add(Glob::new(&glob)?);
|
||||
}
|
||||
|
||||
builder.build().map_err(Into::into)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue