An open API service indexing awesome lists of open source software.

https://github.com/playform/summary

🗣️ Summary —
https://github.com/playform/summary

Last synced: about 1 year ago
JSON representation

🗣️ Summary —

Awesome Lists containing this project

README

          

# [`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.diff
```

[`Summary`] will now generate the following [`Summary.diff`](./Summary.diff) for
all the commits and tags between the first and the last commit.

## Feature

- 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.