{ "info": { "author": "Philip Lundrigan", "author_email": "philipbl@cs.utah.edu", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.4" ], "description": "Rotten Bites\n============\n\n|Build Status| |Coverage Status|\n\nA small utility for checking for `bit\nrot `__. This project is\nheavily influenced by `chkbit `__ and\n`bitrot `__. Both projects had things I\nliked about them and other things that I didn't. I took what I liked and\nmade something myself.\n\nThe focus of Rotten Bites is scalability and speed. To achieve this,\nsmall files (``.bit_check``) are placed in every directory. I know, no\none wants a `\"bunch of turdy files sprinkled all over your hard\ndrive\" `__, but in my opinion it is the best\nway to allow for flexibility (folders can be moved around without any\nproblem because all paths are relative to that directory) and\nscalability (having one central database with all files stored does not\nscale well).\n\nThere are two components to Rotten Bites: the CLI and library. I\ndesigned Rotten Bites to be callback based so it makes it easy to\nextend. See the CLI (``rotten_bites/__main__.py``) and rot\\_check.py,\nfor examples.\n\nInstall\n-------\n\n::\n\n pip install rotten_bites\n\nUsage\n-----\n\n::\n\n Usage: rotten_bites [OPTIONS] DIRECTORY\n\n Given a directory, rotten bites calculates the sha1 hash of every file and\n stores it in .bit_check files. Once stored, subsequent checks will see if\n the hash has changed, detecting bit rot.\n\n Status codes:\n\n 'E' error, sha1 mismatch\n\n 'a' add to index\n\n 'u' update sha1\n\n ' ' not modified (shown only with verbose)\n\n '?' could not read file (permission denied or file no longer\n exists)\n\n Options:\n --delete Delete all .bit_check files.\n -n, --dry-run Run without making any changes. No .bit_check files\n are created or updated\n --ignore-list FILENAME List of files and folders to ignore. Similar syntax\n to .gitignore files. \"-\" can be used to read from\n stdin.\n -q, --quiet Turn off all output except for hash errors.\n -v, --verbose Display all files that are scanned, even if they\n haven't changed\n --verify Verify hashes without updating.\n --help Show this message and exit.\n\n.. |Build Status| image:: https://travis-ci.org/philipbl/rotten_bites.svg?branch=master\n :target: https://travis-ci.org/philipbl/rotten_bites\n.. |Coverage Status| image:: https://coveralls.io/repos/github/philipbl/rotten_bites/badge.svg?branch=master\n :target: https://coveralls.io/github/philipbl/rotten_bites?branch=master", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/philipbl/rotten_bites/archive/1.0.0.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/philipbl/rotten_bites", "keywords": null, "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "rotten_bites", "package_url": "https://pypi.org/project/rotten_bites/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/rotten_bites/", "project_urls": { "Download": "https://github.com/philipbl/rotten_bites/archive/1.0.0.zip", "Homepage": "https://github.com/philipbl/rotten_bites" }, "release_url": "https://pypi.org/project/rotten_bites/1.0.0/", "requires_dist": null, "requires_python": null, "summary": "A tool for detecting bit rot in files.", "version": "1.0.0" }, "last_serial": 2236436, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "d5d21dba46716568991b552677f8b0c8", "sha256": "c76281a778c5079f774d85e2bbba4f61a6212faaf5bd9e9fbb3f8b157e1cf4ee" }, "downloads": -1, "filename": "rotten_bites-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d5d21dba46716568991b552677f8b0c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6573, "upload_time": "2016-07-21T19:28:44", "url": "https://files.pythonhosted.org/packages/8a/b4/f525a4567223eebb444ecde1f1c8d967d324294743884ee8c90991c15459/rotten_bites-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d5d21dba46716568991b552677f8b0c8", "sha256": "c76281a778c5079f774d85e2bbba4f61a6212faaf5bd9e9fbb3f8b157e1cf4ee" }, "downloads": -1, "filename": "rotten_bites-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d5d21dba46716568991b552677f8b0c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6573, "upload_time": "2016-07-21T19:28:44", "url": "https://files.pythonhosted.org/packages/8a/b4/f525a4567223eebb444ecde1f1c8d967d324294743884ee8c90991c15459/rotten_bites-1.0.0.tar.gz" } ] }