# 🗣️ [Summary] — [Summary] is a powerful command-line tool designed for efficient `Git` repository analysis and summarization. It offers both sequential and parallel processing capabilities, along with flexible file filtering options. [Summary]: HTTPS://crates.io/crates/psummary ```sh Summary -P > Summary.md ``` [Summary] will now generate the following [Summary.md](./Summary.md) for all the commits and tags between the first and the last commit. ## Features - Customizable file pattern matching. - Diff generation between `Git` tags. - Directory traversal and file filtering. - Exclusion of specified files or directories. - `Git` repository analysis. - Integration with [Pieces OS] for enhanced functionality. - Parallel and sequential processing modes. ## [Pieces OS] Integration The [Summary] CLI supports [Pieces OS], allowing it to: - Generate comprehensive diff logs and release notes automatically. - Provide AI-driven code analysis and insights. - Offer improved context-aware processing of repository changes. - Seamlessly interact with other [Pieces OS]-compatible development tools. By leveraging [Pieces OS], [Summary] can tap into a broader ecosystem of development tools and services, significantly expanding its capabilities beyond basic file processing. ## Installation ```sh cargo install psummary ``` ## Usage The Summary tool can be used with various options: ``` 🗣️ Summary — Usage: Summary [OPTIONS] Options: -P, --Parallel ⏩ Parallel — -R, --Root 📂 Root — [default: .] -E, --Exclude 🚫 Exclude — [default: node_modules] --Pattern 🔍 Pattern — [default: .git] -O, --Omit 🚫 Omit — [default: Documentation] -h, --help Print help -V, --version Print version ``` This command will generate summaries for all the `Git` tags inside the specified repository. ## Options The [Summary] tool can be used with various options: #### --Exclude or -E: Exclude certain files or directories. Default is: ```sh Summary -P -E node_modules ``` #### --Omit or -O: Specify regex patterns to omit files from processing. Default is: ```sh Summary -P \ --Omit "(?i)documentation" \ --Omit "(?i)target" \ --Omit "(?i)changelog\.md$" \ --Omit "(?i)summary\.md$" ``` #### --Parallel or -P: Run processing in parallel. Default is: ```sh Summary ``` #### --Pattern: Specify a custom pattern for matching. Default is: ```sh Summary -P --Pattern .git ``` #### --Root or -R: Set the current working directory to a different folder. Default is: ```sh Summary -P --Root . ``` For [Pieces OS] integration, refer to the [Pieces OS] documentation for specific flags and configuration options. [Pieces OS] ## Examples Analyze the current directory: ```sh Summary ``` Analyze a specific directory in parallel: ```sh Summary -P -R D:\Developer ``` Exclude additional directories: ```sh Summary -P -E "node_modules target dist vendor" ``` Omit specific file patterns: ```sh Summary -P -O "\.md$" -O "\.txt$" ``` ## Dependencies [Summary] relies on several Rust crates to provide its functionality: - `clap` - For parsing command-line arguments. - `futures` - For asynchronous programming abstractions. - `git2` - For `Git` repository operations. - `num_cpus` - For determining the number of CPUs for parallel processing. - `rayon` - For parallel processing. - `regex` - For pattern matching and text manipulation. - `tokio` - For asynchronous runtime. - `walkdir` - For efficient filesystem traversal. [Pieces OS] For extended functionality and system integration. [Summary]: HTTPS://crates.io/crates/psummary [Pieces OS]: HTTPS://Pieces.App ## Changelog See [CHANGELOG.md](CHANGELOG.md) for a history of changes to this CLI.