Skip to content

feat: add pattern-based filtering for dotfiles and default pattern configuration#16

Merged
rsvinicius merged 2 commits into
mainfrom
feature/support_for_patterns
Aug 8, 2025
Merged

feat: add pattern-based filtering for dotfiles and default pattern configuration#16
rsvinicius merged 2 commits into
mainfrom
feature/support_for_patterns

Conversation

@rsvinicius

Copy link
Copy Markdown
Owner

Add support for specific dotfile patterns and exclusions

This pull request implements issue #3 by adding comprehensive pattern matching support for dotfiles, allowing users to include or exclude specific files using glob patterns.

🚀 New Features

Command-line Pattern Support

  • Include patterns (-i, --include): Specify glob patterns for files to include
  • Exclude patterns (-e, --exclude): Specify glob patterns for files to exclude
  • Multiple patterns: Support for multiple include/exclude patterns in a single command
  • Pattern precedence: Exclude patterns take precedence over include patterns

Configuration Management

  • Default patterns: Save default include/exclude patterns in configuration
  • Config commands: New config set-patterns and config show-patterns commands
  • Persistent storage: Patterns are stored alongside repository aliases in ~/.dotme/config.json

Pattern Matching Engine

  • Glob support: Full glob pattern matching with *, ?, [...], and {...} support
  • Flexible filtering: Patterns work with both files and directories
  • Smart defaults: When no patterns specified, defaults to copying all dotfiles

📋 Usage Examples

# Include only vim-related dotfiles
dotme -i ".vim*" -i ".vimrc" https://github.com/user/dotfiles

# Exclude backup and cache files
dotme -e "*.bak" -e "*cache*" https://github.com/user/dotfiles

# Combine include and exclude patterns
dotme -i ".config/*" -e ".config/cache" https://github.com/user/dotfiles

# Set default patterns for future use
dotme config set-patterns --include ".vim*,.zsh*" --exclude "*.log,*cache*"

# Use saved alias with custom patterns
dotme -a my-dotfiles -e "*.tmp"

@rsvinicius rsvinicius merged commit a67f05b into main Aug 8, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant