Metadata-Version: 2.4
Name: folderdiff
Version: 1.0.0
Summary: FolderDiff is a tool to compare unzipped archives (e.g. Wordpress installations) with their original zip archive or a clean source folder.
Project-URL: Changelog, https://github.com/manfred-kaiser/folderdiff/blob/main/CHANGELOG.md
Project-URL: Source, https://github.com/manfred-kaiser/folderdiff
Project-URL: Tracker, https://github.com/manfred-kaiser/folderdiff/issues
Author-email: Manfred Kaiser <manfred.kaiser@ssh-mitm.at>
License-Expression: MIT
License-File: LICENSE
Keywords: compare,diff,folder
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# FolderDiff


FolderDiff can be used to compare unzipped archives (e.g. Wordpress installations)
with their original zip or tar archive (.zip, .tar, .tar.gz, .tar.bz2, .tar.xz)
or a clean source folder.

As a result the found changes (added, deleted, moved and changed) are displayed.

## Command usage

```
$ folderdiff -h
usage: folderdiff [-h] [--prefix PREFIX] FILES FILES

folder compare tool

positional arguments:
  FILES            directory or archive to compare

options:
  -h, --help       show this help message and exit
  --prefix PREFIX  remove the prefix from the source and/or destination folder
```

## Sample output

```
folderdiff wordpress-6.0.3-de_AT.zip /var/www/ --prefix wordpress/
===================== Added ======================
+ webshell.php
==================== Modified ====================
* index.php
```

## Limitations

- Files that cannot be read (broken symlinks, missing permissions) are skipped
  with a warning on stderr instead of aborting the whole comparison.
- Symlinked directories are not followed, so their contents are not included
  in the comparison.
- Password-protected zip archives are not supported.
- Unlike zip archives, tar archives have no per-file checksum. A corrupted
  tar member may in rare cases be silently dropped from the comparison
  instead of being reported as an error.
