parse_pattern_base_path

Function parse_pattern_base_path 

Source
pub fn parse_pattern_base_path(pattern: &str) -> (PathBuf, String)
Expand description

Parses a pattern string to extract the base path and pattern components.

Handles three cases:

  1. Patterns with path separators and absolute/relative parents
  2. Patterns with path separators but simple relative paths
  3. Simple patterns without path separators

§Arguments

  • pattern - The glob pattern string (e.g., “agents/.md”, “../foo/.md”)

§Returns

A tuple of (base_path, pattern_str) where:

  • base_path is the directory to search in
  • pattern_str is the glob pattern to match files against

§Examples

use std::path::{Path, PathBuf};
use agpm_cli::resolver::path_resolver::parse_pattern_base_path;

let (base, pattern) = parse_pattern_base_path("agents/*.md");
assert_eq!(base, PathBuf::from("."));
assert_eq!(pattern, "agents/*.md");

let (base, pattern) = parse_pattern_base_path("../foo/bar/*.md");
assert_eq!(base, PathBuf::from("../foo/bar"));
assert_eq!(pattern, "*.md");