{ "info": { "author": "Alan Chen", "author_email": "me@zenan.ch", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: System" ], "description": "|rm-protection logo|\n\nrm-protection\n=============\n\nA safe alternative for ``rm`` with minimum difference.\n\nWhat is this?\n=============\n\n``rm-protection`` is a safe alternative for removing file. It works\nexactly the same as ``rm`` (in fact it passes arguments to rm). The only\ndifference is that it refuses to procceed if a ``.*.rm-protection`` file is\nfound and you failed to answer a question.\n\nQuick Start\n===========\n\n``pip install rm-protection``\n\n1. Install from PyPi and make an alias for ``rm-p``.\n2. Protect your files using ``protect``. If you want to protect everything inside, ``protect -R``.\n3. Happy rm-ing!\n\nHow does it work?\n=================\n\nIt consists of two utilities: ``rm-p`` and ``protect``. The latter one\nis to help you protect files.\n\nFor example, you have a file called ``important_file`` and it is\n``protect``\\ ed by ``.important_file.rm-protection``. ``rm-p`` will\nrecognise that ``important_file`` is protected and prompt to ask you a\nquestion stored in ``.important_file.rm-protection``. ``rm-p`` will only\nproceed if you get the answer right.\n\nSee it in action:\n\n.. figure:: https://ooo.0o0.ooo/2017/02/03/58943760b76ed.gif\n :alt: Basic usage\n :scale: 80%\n\n Basic usage\n\nIt will also prevent you from deleting a directory with ``protect``\\ ed\nfile(s) inside.\n\n.. figure:: https://ooo.0o0.ooo/2017/02/03/589437603366e.png\n :alt: Recursive protection\n :scale: 80%\n\n Recursive protection\n\nRequirements\n============\n\n- Python 2 or 3\n- Linux, unix and macOS\n- ``find``\n\nKnown issues\n============\n\n- Currently does not support protecting files whose name starts with\n \"-\".\n\nComparison with alternative methods\n===================================\n\n+---------------------------+---------------+----------------+---------+-------------+\n| Methods | Can be uesd | Protect | Flexibi | Additional |\n| | as \"rm\"? | Specific Files | lity | Files |\n+===========================+===============+================+=========+=============+\n| `trash-cli `__ | | | | |\n+---------------------------+---------------+----------------+---------+-------------+\n| rm -i | Yes | No or Somehow | High | |\n+---------------------------+---------------+----------------+---------+-------------+\n| `safe-rm `__ | | | | Config |\n+---------------------------+---------------+----------------+---------+-------------+\n| rm-protection | Yes | Yes | High | One for |\n| | | | | each |\n+---------------------------+---------------+----------------+---------+-------------+\n\n``rm-protection`` aims at providing maximum protection and flexibility\nwhile making minimum impact on daily operation.\n\n``rm -i`` can be very annoying, ``trash-cli`` is a bit complex (imagine\nyou have a habit of emptying the trash without a second thought, or\nimagine you are trying to free up spaces on a budget vm). Safe-rm is\ninconvenient when you really need to delete something (you have to edit\nthe configuration file).\n\nInstead, ``rm-protection`` asks you a question set by you. You are fully\ncovered when removing files (you won't accidentally empty the trash with\n``trash-cli`` or ``| yes`` with ``rm -i``), and you can quickly remove\nfiles (without editing any configuration files).\n\nHow to contribute?\n==================\n\nPull requests and issues are all welcome! Or tell others about this, so\nyou can even ``protect`` the files you send to others!\n\n.. |rm-protection logo| image:: https://ooo.0o0.ooo/2017/02/03/58943f1ed88cd.png\n\t:scale: 50%\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/alanzchen/rm-protection", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "rm-protection", "package_url": "https://pypi.org/project/rm-protection/", "platform": "", "project_url": "https://pypi.org/project/rm-protection/", "project_urls": { "Homepage": "https://github.com/alanzchen/rm-protection" }, "release_url": "https://pypi.org/project/rm-protection/0.1.3/", "requires_dist": [ "future" ], "requires_python": "", "summary": "A safe alternative for \"rm\" with minimum difference.", "version": "0.1.3" }, "last_serial": 2904299, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "dc987152c6eb54c82032eefc1ccba331", "sha256": "614eaf1d0708d8219579588da0708c324f5d02f3e451a3eac728a8ced1a4d034" }, "downloads": -1, "filename": "rm_protection-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dc987152c6eb54c82032eefc1ccba331", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8519, "upload_time": "2017-02-04T04:51:05", "url": "https://files.pythonhosted.org/packages/2d/a7/cb6404ea2e7cb961a3749e62c365a8d39709b8594a3e31cc7d52ad3ae44f/rm_protection-0.1.0-py2.py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "ea53b8f131988eb9f19240cc935e4efe", "sha256": "ed4dbefadf7085abe47a91c45ad5bbb1e18f982de207e3f97f089cfa4753f1ab" }, "downloads": -1, "filename": "rm_protection-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ea53b8f131988eb9f19240cc935e4efe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8912, "upload_time": "2017-02-05T04:40:48", "url": "https://files.pythonhosted.org/packages/a4/13/94b303fb5e131e527a89de17580b0be79ece10aee59a8f51a6b8e31d54b3/rm_protection-0.1.1-py2.py3-none-any.whl" } ], "0.1.1.1": [ { "comment_text": "", "digests": { "md5": "ee45fe3be6a3e9e6646600176d2e7fe5", "sha256": "c3ea3a60497d0ce289086301216e3c573bfcd86f877c43bcd464eab2abd72183" }, "downloads": -1, "filename": "rm_protection-0.1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee45fe3be6a3e9e6646600176d2e7fe5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8955, "upload_time": "2017-02-07T01:27:17", "url": "https://files.pythonhosted.org/packages/68/04/e3c51a2ed01bd33fdd658c583e2a4f6af6ae37f300acdfbad70c3547928f/rm_protection-0.1.1.1-py2.py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "57cc5a73e244e6483d806fd3457c8e1e", "sha256": "695f6919ac7c6fc10f7684c4b4e4b93673393d71f1680ff9ad1d477f40edf87a" }, "downloads": -1, "filename": "rm_protection-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "57cc5a73e244e6483d806fd3457c8e1e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8045, "upload_time": "2017-02-21T07:14:30", "url": "https://files.pythonhosted.org/packages/ad/49/ca62b6b399c6b3561e6b5b4d7ebe15673e97e3b13d2124041efcb3a9d074/rm_protection-0.1.2-py2.py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "3c8fec5c5c7e68f6f40740337e988974", "sha256": "047414045bacfcaf0930cb47359fe76c39fbf147285dc55bfd202ef551250dbf" }, "downloads": -1, "filename": "rm_protection-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3c8fec5c5c7e68f6f40740337e988974", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9567, "upload_time": "2017-05-28T06:20:19", "url": "https://files.pythonhosted.org/packages/40/09/3cfd36832681293859bd95c8cb2c4d7cf8f1ec36382135289a568d266379/rm_protection-0.1.3-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3c8fec5c5c7e68f6f40740337e988974", "sha256": "047414045bacfcaf0930cb47359fe76c39fbf147285dc55bfd202ef551250dbf" }, "downloads": -1, "filename": "rm_protection-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3c8fec5c5c7e68f6f40740337e988974", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9567, "upload_time": "2017-05-28T06:20:19", "url": "https://files.pythonhosted.org/packages/40/09/3cfd36832681293859bd95c8cb2c4d7cf8f1ec36382135289a568d266379/rm_protection-0.1.3-py2.py3-none-any.whl" } ] }