use std::path::PathBuf;
use clap::Args;
#[derive(Args)]
pub struct IndexArgs {
#[arg(long)]
pub(in crate::cli) incremental: bool,
#[arg(long)]
pub(in crate::cli) force: bool,
#[arg(long)]
pub(in crate::cli) force_publish: bool,
#[arg(long = "quipu-graph", help = "Registered quipu graph for chunks")]
pub(in crate::cli) graph: Option<String>,
#[arg(long)]
pub(in crate::cli) repo: Option<String>,
#[arg(long)]
pub(in crate::cli) source: Option<PathBuf>,
#[arg(long)]
pub(in crate::cli) include_beads: bool,
#[arg(long)]
pub(in crate::cli) no_quipu_publish: bool,
#[arg(long = "include", value_name = "GLOB")]
pub(in crate::cli) include_globs: Vec<String>,
#[arg(long)]
pub(in crate::cli) skip_calibrate: bool,
#[arg(default_value = ".")]
pub(in crate::cli) path: PathBuf,
}
pub(in crate::cli) fn apply_include(
config: &mut crate::config::Config,
globs: &[String],
) -> anyhow::Result<()> {
if globs.is_empty() {
return Ok(());
}
for g in globs {
glob::Pattern::new(g)
.map_err(|e| anyhow::anyhow!("--include {g:?} is not a valid glob: {e}"))?;
}
config.index.include = globs.to_vec();
Ok(())
}