Metadata-Version: 2.3
Name: full-apply
Version: 0.7.3
Summary: Apply commands to both file contents and paths
Author: smheidrich
Author-email: smheidrich@weltenfunktion.de
Requires-Python: >=3.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: binaryornot (>=0.4.4,<0.5.0)
Requires-Dist: typer (>=0.7.0,<0.8.0)
Requires-Dist: yachalk (>=0.1.5,<0.2.0)
Description-Content-Type: text/markdown

# full-apply

Apply commands to both file contents and paths.

## Installation

```bash
pip3 install full-apply
```

## Usage

```console
$ full-apply --help
Usage: full-apply [OPTIONS] CMD PATHS...

  Apply commands to both file contents and paths.

  File paths and contents will be piped into the given shell command's
  standard input and replaced with its output.

  Examples:

  Replace all occurrences of "foo" with "bar" in both paths and file contents
  within the current directory and sub-directories (will prompt for
  confirmation before actually making any changes):

    $ full-apply -r "sed s/foo/bar/g" .

Arguments:
  CMD       shell command to apply  [required]
  PATHS...  paths to apply to (recursively)  [required]

Options:
  -y, --yes           apply changes without asking (dangerous!)
  -n, --no            don't apply changes and don't even ask
  -H, --hidden        go through "hidden" (dot-prefixed) files
  --binary            go through the contents of binary files
  -r, --recursive     recurse into directories
  --move / --no-move  move files  [default: move]
  --git-stage         stage changes to files tracked by Git (NOTE: only works
                      when run within the Git repo, otherwise undefined
                      behavior)
  --help              Show this message and exit.
```

## Changelog

### 0.7.3

- Introduced `--git-stage` option to automatically add changes to files to
  Git's index

### 0.7.2

- Introduced `--no-move` option to disable moving files

### 0.7.0

- Now defaults to not going through the contents of binary files.
- Introduced `--binary` option to re-enable the old behavior of doing so.
- Fixed crash on diff output for files with non-UTF-8 contents.

