Skip to main content

Rotten Bites

Build Status Coverage Status

A small utility for checking for bit rot. This project is heavily influenced by chkbit and bitrot. Both projects had things I liked about them and other things that I didn’t. I took what I liked and made something myself.

The focus of Rotten Bites is scalability and speed. To achieve this, small files (.bit_check) are placed in every directory. I know, no one wants a “bunch of turdy files sprinkled all over your hard drive”, but in my opinion it is the best way to allow for flexibility (folders can be moved around without any problem because all paths are relative to that directory) and scalability (having one central database with all files stored does not scale well).

There are two components to Rotten Bites: the CLI and library. I designed Rotten Bites to be callback based so it makes it easy to extend. See the CLI (rotten_bites/__main__.py) and rot_check.py, for examples.

Install

pip install rotten_bites

Usage

Usage: rotten_bites [OPTIONS] DIRECTORY

  Given a directory, rotten bites calculates the sha1 hash of every file and
  stores it in .bit_check files. Once stored, subsequent checks will see if
  the hash has changed, detecting bit rot.

  Status codes:

      'E'     error, sha1 mismatch

      'a'     add to index

      'u'     update sha1

      ' '     not modified (shown only with verbose)

      '?'     could not read file (permission denied or file no longer
              exists)

Options:
  --delete                Delete all .bit_check files.
  -n, --dry-run           Run without making any changes. No .bit_check files
                          are created or updated
  --ignore-list FILENAME  List of files and folders to ignore. Similar syntax
                          to .gitignore files. "-" can be used to read from
                          stdin.
  -q, --quiet             Turn off all output except for hash errors.
  -v, --verbose           Display all files that are scanned, even if they
                          haven't changed
  --verify                Verify hashes without updating.
  --help                  Show this message and exit.

Metadata

Release files for rotten_bites 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rotten_bites 1.0.0
File Size Uploaded
rotten_bites-1.0.0.tar.gz 6.6 kB Details

Release files / rotten_bites-1.0.0.tar.gz

Download URL rotten_bites-1.0.0.tar.gz
Size 6.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c76281a778c5079f774d85e2bbba4f61a6212faaf5bd9e9fbb3f8b157e1cf4ee
BLAKE2b-256 checksum
How to use checksums
8ab4f525a4567223eebb444ecde1f1c8d967d324294743884ee8c90991c15459
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page