{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "Prefsniff\n=========\n\n*Author:* Zachary Cutlip, uid000 at gmail\n\n`prefsniff` is a utility to watch macOS plist files for changes, and then autogenerate the `defaults` command to apply those changes. Its intended use is to have `prefsniff` watch a plist file while setting a system or application preference. The resulting defaults command can then be added to a shell script or incorporated into a configuration management system such as Ansible.\n\nInstalling\n----------\n $ git clone prefsniff\n $ cd prefsniff\n $ pip install -r ./requirements.txt\n\n\nUsing\n-----\n`prefsniff` has two modes of operation; directory mode and file mode.\n\n- Directory mode: watch a directory (non-recursively) for plist files that are unlinked and replaced in order to observe what file backs a particular configuration setting.\n- File mode: watch a plist file in order to represent its changes as one or more `defaults` command.\n\nDirectory mode example:\n\n $ prefsniff ~/Library/Preferences\n PREFSNIFF version 0.1.0b3\n Watching directory: /Users/zach/Library/Preferences\n Detected change: [deleted] /Users/zach/Library/Preferences/com.apple.dock.plist\n Detected change: [created] /Users/zach/Library/Preferences/com.apple.dock.plist\n\nFile mode example:\n\n $ prefsniff ~/Library/Preferences/com.apple.dock.plist\n PREFSNIFF version 0.1.0b3\n Watching prefs file: /Users/zach/Library/Preferences/com.apple.dock.plist\n *****************************\n\n defaults write com.apple.dock orientation -string right\n\n *****************************\n\nTODO\n----\n\n- Implement `data` and `date` plist types\n- Clean up output so that it can be redirected to a shell script or similar\n- Add additional output options (such as the name of a shell script to create)\n- Split utility & API\n - Make prefsniff into a python module that exports API\n - Make a separate `prefsniff` command-line utility that uses the API\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/zcutlip/prefsniff", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "prefsniff", "package_url": "https://pypi.org/project/prefsniff/", "platform": "", "project_url": "https://pypi.org/project/prefsniff/", "project_urls": { "Homepage": "https://github.com/zcutlip/prefsniff" }, "release_url": "https://pypi.org/project/prefsniff/0.1.0b3/", "requires_dist": [ "watchdog (>=0.8.3)" ], "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*,", "summary": "macOS defaults(1) command generator", "version": "0.1.0b3" }, "last_serial": 5837359, "releases": { "0.1.0.dev0": [ { "comment_text": "", "digests": { "md5": "a7bd5e689c903f4bc301f7194e6faf0d", "sha256": "6f386006e02760cd3ecf0922a6c2c078bad7a6e67719f0975ef7e16c7d1adc78" }, "downloads": -1, "filename": "prefsniff-0.1.0.dev0-py2-none-any.whl", "has_sig": false, "md5_digest": "a7bd5e689c903f4bc301f7194e6faf0d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7,>=3.7", "size": 8742, "upload_time": "2019-09-16T02:48:37", "url": "https://files.pythonhosted.org/packages/a5/f4/baa089eea63798a237b862e0dd3cb7bdd1d8d00ed51a2cd69785f9a197ef/prefsniff-0.1.0.dev0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7cfe2b208edfa3267f452a02991f96d", "sha256": "c0082d46b62bcd0512c0358656ce50b4a4c6cdf51024c1c3de3e7fd38e5ae0f7" }, "downloads": -1, "filename": "prefsniff-0.1.0.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "b7cfe2b208edfa3267f452a02991f96d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7,>=3.7", "size": 8796, "upload_time": "2019-09-16T02:48:40", "url": "https://files.pythonhosted.org/packages/3c/01/822f532899f365169c92827c62a9653e8602e14d4c3ad5612356c0e70148/prefsniff-0.1.0.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "beb3d0052b4ef613fba065df6abf6036", "sha256": "c1ccf053b761cf6d56c1a5332ff25da443499bf406514ce42d84a97a6680a46f" }, "downloads": -1, "filename": "prefsniff-0.1.0.dev0.tar.gz", "has_sig": false, "md5_digest": "beb3d0052b4ef613fba065df6abf6036", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,>=3.7", "size": 7194, "upload_time": "2019-09-16T02:48:42", "url": "https://files.pythonhosted.org/packages/38/cf/d205c4fb0e5ba8a1a94b4bc345cc7671d395787e9760da39caf6326a75ba/prefsniff-0.1.0.dev0.tar.gz" } ], "0.1.0b1": [ { "comment_text": "", "digests": { "md5": "d5e27e76e9329853bcdbbd4bed1c6097", "sha256": "40c7a6ec074835f2cd92518fbc435259f97ce1c80a2bf14e43275ff369a5270c" }, "downloads": -1, "filename": "prefsniff-0.1.0b1-py2-none-any.whl", "has_sig": false, "md5_digest": "d5e27e76e9329853bcdbbd4bed1c6097", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7,>=3.7", "size": 9546, "upload_time": "2019-09-16T03:58:24", "url": "https://files.pythonhosted.org/packages/11/4c/531a778a7d567f0263777b991fd6548450b17cd5aaa5089d222106cdbc4f/prefsniff-0.1.0b1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a24b05d23c2def702f9e7929f6bc951b", "sha256": "8dc3e4ff38d68c18e865f372b8f7ab2b02cefc5ae0c45334a1e6862f30ae096b" }, "downloads": -1, "filename": "prefsniff-0.1.0b1.tar.gz", "has_sig": false, "md5_digest": "a24b05d23c2def702f9e7929f6bc951b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,>=3.7", "size": 7469, "upload_time": "2019-09-16T03:58:26", "url": "https://files.pythonhosted.org/packages/e1/d4/72e549be8593aac39555e076927d782b3fa786203a25e6ce10375dbbaa55/prefsniff-0.1.0b1.tar.gz" } ], "0.1.0b2": [ { "comment_text": "", "digests": { "md5": "e8db47f4575e9bf5fe91f921849bc950", "sha256": "9b089afb12308d03208c680a12441b9a66625e29e0f5cf15b7a4066fcc2c14f4" }, "downloads": -1, "filename": "prefsniff-0.1.0b2-py2-none-any.whl", "has_sig": false, "md5_digest": "e8db47f4575e9bf5fe91f921849bc950", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*,", "size": 9568, "upload_time": "2019-09-16T04:16:38", "url": "https://files.pythonhosted.org/packages/d0/ef/2666b92dd46ae16c537b4ddbd6e0ec8604865e84d5e75ebda12f09269c64/prefsniff-0.1.0b2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ca45cedc8951360f14315419b571333", "sha256": "9488d8340380d8467e3083eb7165cc397faf4bcd8aa59b96616addffa621e612" }, "downloads": -1, "filename": "prefsniff-0.1.0b2.tar.gz", "has_sig": false, "md5_digest": "1ca45cedc8951360f14315419b571333", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*,", "size": 7487, "upload_time": "2019-09-16T04:16:40", "url": "https://files.pythonhosted.org/packages/0a/01/5fc84878d2c68cef1a2c0f0c8aa5d1eaf0388d50d3b5a0e223238ca7bfea/prefsniff-0.1.0b2.tar.gz" } ], "0.1.0b3": [ { "comment_text": "", "digests": { "md5": "cb7fce6bed5e1fdeca03187774e69eb4", "sha256": "c88674e67f600886226fe54f30112a52519ff88ef08e70c3ded7563f52dc7fe7" }, "downloads": -1, "filename": "prefsniff-0.1.0b3-py2-none-any.whl", "has_sig": false, "md5_digest": "cb7fce6bed5e1fdeca03187774e69eb4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*,", "size": 9786, "upload_time": "2019-09-16T17:12:47", "url": "https://files.pythonhosted.org/packages/00/b2/05c772973796f9403f4dbb5520ba778cb0aee17e959f5b6f232decc418e9/prefsniff-0.1.0b3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "590152b2b686c3ddf5e50497b138492d", "sha256": "212aabccbef9bf6cde07b712c9a8d90c6c9b8b165dd0555fc16bbaf4419645fd" }, "downloads": -1, "filename": "prefsniff-0.1.0b3.tar.gz", "has_sig": false, "md5_digest": "590152b2b686c3ddf5e50497b138492d", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*,", "size": 7713, "upload_time": "2019-09-16T17:12:49", "url": "https://files.pythonhosted.org/packages/18/7e/15ea778df332f0f0d993b7965fbfeae0997f9f97284b38e0153f191913b8/prefsniff-0.1.0b3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cb7fce6bed5e1fdeca03187774e69eb4", "sha256": "c88674e67f600886226fe54f30112a52519ff88ef08e70c3ded7563f52dc7fe7" }, "downloads": -1, "filename": "prefsniff-0.1.0b3-py2-none-any.whl", "has_sig": false, "md5_digest": "cb7fce6bed5e1fdeca03187774e69eb4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*,", "size": 9786, "upload_time": "2019-09-16T17:12:47", "url": "https://files.pythonhosted.org/packages/00/b2/05c772973796f9403f4dbb5520ba778cb0aee17e959f5b6f232decc418e9/prefsniff-0.1.0b3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "590152b2b686c3ddf5e50497b138492d", "sha256": "212aabccbef9bf6cde07b712c9a8d90c6c9b8b165dd0555fc16bbaf4419645fd" }, "downloads": -1, "filename": "prefsniff-0.1.0b3.tar.gz", "has_sig": false, "md5_digest": "590152b2b686c3ddf5e50497b138492d", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*,", "size": 7713, "upload_time": "2019-09-16T17:12:49", "url": "https://files.pythonhosted.org/packages/18/7e/15ea778df332f0f0d993b7965fbfeae0997f9f97284b38e0153f191913b8/prefsniff-0.1.0b3.tar.gz" } ] }