52 lines
1.6 KiB
Markdown
52 lines
1.6 KiB
Markdown
# PAT
|
|
|
|
|
|
## What it Does
|
|
`pat` is a command-line tool for concatenating and displaying the contents of files and directories. It:
|
|
1. Processes the specified files and directories recursively.
|
|
2. Appends content to a structured output with file paths and a delimiter for clarity.
|
|
3. Copies the resulting output to the system clipboard for convenient sharing or reuse.
|
|
|
|
Example use case:
|
|
- Aggregate and view the contents of multiple files or directories in one command.
|
|
- Automatically copy the aggregated result to the clipboard for seamless integration with other tools or platforms.
|
|
|
|
|
|
## Dependencies
|
|
1. **Golang** (only to install / build):
|
|
- The application requires the Go programming language (`>= 1.18`) to compile and run.
|
|
- Dependency: `golang.design/x/clipboard` for clipboard interaction.
|
|
2. **External Tools**:
|
|
- On Wayland-based systems, `wl-copy` must be installed for clipboard functionality.
|
|
|
|
## Installation
|
|
|
|
Install go-cat directly using go install:
|
|
|
|
``` sh
|
|
go install git.schreifuchs.ch/schreifuchs/pat@latest
|
|
```
|
|
|
|
|
|
The binary will be placed in your $GOPATH/bin directory. Ensure $GOPATH/bin is in your system's PATH to run it directly.
|
|
|
|
|
|
## Example Usage
|
|
Concatenate files and directories:
|
|
```bash
|
|
./pat file1.txt folder/
|
|
```
|
|
|
|
Output is printed to the terminal and copied to the clipboard, allowing you to paste it elsewhere.
|
|
|
|
---
|
|
|
|
#### Notes
|
|
- The tool uses `---------------------------------------------------------------------------` as a delimiter to separate file contents for readability.
|
|
- If clipboard functionality fails (e.g., unsupported environment), the application will still display the result in the terminal.
|
|
|
|
|
|
|
|
|
|
|