{ "info": { "author": "Ben Burrill", "author_email": "bburrill98+symlink-gardener@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Topic :: System :: Archiving :: Packaging", "Topic :: System :: Filesystems", "Topic :: Utilities" ], "description": "Symlink Gardener\n================\n\nSymlink Gardener is a symlink farm manager akin to GNU Stow, but with\nadditional features that are useful for tasks such as managing dotfiles.\n\nFeatures\n--------\n\n- Options for conflict resolution. By default, packages will silently\n shadow symlinks from packages with lower precedence than them, but\n actions will fail when there are conflicts with \"weeds\" (files not\n owned by the garden). However, different conflict resolution\n strategies can also be specified.\n- A more tangible concept of packages than stow. Packages can have\n their own config files to declare files to ignore (and maybe more\n stuff in the future), and packages have a real concept of being\n installed which allows symlinks to be easily and accurately updated\n when packages change.\n- Commands for converting specific weeds into symlinks managed by the\n garden and vice-versa.\n- And most importantly -- hastily tacked on gardening metaphors!\n\nInstallation\n------------\n\nPython >= 3.6 is required.\n\nRecommended installation (with `pipsi`_):\n\n.. code:: shell\n\n $ pipsi install --python=python3 symlink-gardener\n\nBasic Usage\n-----------\n\nCreate a garden in the current directory\n\n.. code:: shell\n\n $ gardener prepare\n\nPlant (install) packages in the garden\n\nThis creates symlinks in the garden directory at paths that correspond\nto those in the package directory.\n\nPackages may be customized in ``/.garden-package.json`` (currently all\nyou can do is add ignore patterns)\n\n.. code:: shell\n\n $ gardener plant path/to/common path/to/ex other-ex:path/to/other/ex\n\nUpdate symlinks for all installed packages\n\n.. code:: shell\n\n $ gardener tend\n\nAdd weeds to an installed package.\n\nThis moves the specified files from the garden directory to the package\nand creates a symlink in their place.\n\n.. code:: shell\n\n $ gardener cultivate -p common some/file another/file\n\nTurn those symlinks back into weeds.\n\n.. code:: shell\n\n $ gardener fallow some/file another/file\n\n\nChange package precedence.\n\nThis causes symlinks owned by ex to shadow symlinks owned by all other\npackages. Earlier, the package other-ex was in front of it.\n\n.. code:: shell\n\n $ gardener arrange --front ex\n\nPrune (uninstall) packages\n\n.. code:: shell\n\n $ gardener prune ex other-ex\n\nSee the help for more\n\n.. code:: shell\n\n $ gardener help\n\n.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..\n.. Links\n.. _pipsi: https://github.com/mitsuhiko/pipsi\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/benburrill/gardener", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "symlink-gardener", "package_url": "https://pypi.org/project/symlink-gardener/", "platform": "", "project_url": "https://pypi.org/project/symlink-gardener/", "project_urls": { "Homepage": "https://github.com/benburrill/gardener" }, "release_url": "https://pypi.org/project/symlink-gardener/0.2.3/", "requires_dist": [ "click" ], "requires_python": "", "summary": "A symlink farm manager akin to GNU Stow", "version": "0.2.3" }, "last_serial": 4917527, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "94e73a3426fee0debe515783518ed6e5", "sha256": "5135aed022f68c095eda56f2ed9b7fd5aed3438ffa1aef06716df82360be7fe9" }, "downloads": -1, "filename": "symlink_gardener-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "94e73a3426fee0debe515783518ed6e5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9535, "upload_time": "2018-07-01T04:11:16", "url": "https://files.pythonhosted.org/packages/2f/dd/94508e609e91119d687ee23544541d3240aad5d9df7ecb4ae8bc5c8b0c85/symlink_gardener-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f5594456db554dd8f10bdcefb79d252", "sha256": "b9555c0695bfbd796fab7223a17c1458859d174f8ac4f9c75e23a1b1a849b07c" }, "downloads": -1, "filename": "symlink-gardener-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9f5594456db554dd8f10bdcefb79d252", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9284, "upload_time": "2018-07-01T04:11:17", "url": "https://files.pythonhosted.org/packages/69/f1/16ea1987fd2a84659e533403e32148436d5a3d88c85b77dfa4b03507eade/symlink-gardener-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ed5ae8d880328e0c6837aa1a31a0c08e", "sha256": "bd2bdc2e96e40664f64527370a6131982c3b58a72bea2c7608f96e1451f74f3d" }, "downloads": -1, "filename": "symlink_gardener-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ed5ae8d880328e0c6837aa1a31a0c08e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10348, "upload_time": "2018-07-01T22:33:11", "url": "https://files.pythonhosted.org/packages/34/04/204c140016b6c4a308199c199ea2182f18fe84812c7ecae1c7ec2c92d04b/symlink_gardener-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5602e7520f4d49a32306d84fd917cd03", "sha256": "18dccb30c1cb5c6583e8f47c1e407f74e2d4ef69091f6fa121a66d0658b4dc86" }, "downloads": -1, "filename": "symlink-gardener-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5602e7520f4d49a32306d84fd917cd03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10165, "upload_time": "2018-07-01T22:33:13", "url": "https://files.pythonhosted.org/packages/10/d0/a02d3813ed2a1adf1447d6f7c295f44ddea4e6de0cff379369fd7ab2440e/symlink-gardener-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1609bd6826f2d78e19a7e74afe36727a", "sha256": "ae4b62af54b11a4e86f326a83ba433253466de163a070ceb8b33a5cb1f5a1c57" }, "downloads": -1, "filename": "symlink_gardener-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1609bd6826f2d78e19a7e74afe36727a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10347, "upload_time": "2018-07-04T04:15:05", "url": "https://files.pythonhosted.org/packages/12/19/e56b6de586b2ff885536f5c12b4711ba6db7fc94297c009c6a4a7846d0a3/symlink_gardener-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d872b13b2f706925a5163c1bbadd07eb", "sha256": "174e624c8cf961274d93c4e3e6d17ff6e7c664f41fc8eba73e2e1be61105a538" }, "downloads": -1, "filename": "symlink-gardener-0.2.1.tar.gz", "has_sig": false, "md5_digest": "d872b13b2f706925a5163c1bbadd07eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10165, "upload_time": "2018-07-04T04:15:08", "url": "https://files.pythonhosted.org/packages/e6/50/97e5dddd91e9c3e88253658c5c3b8df30f77780e13733541516e34f4a6fb/symlink-gardener-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "2fe3f1091d5f653d0e4511a8bb5ec098", "sha256": "76793ea6681f6169a3cd86686cc3243a770e42c68a818631a63e129ed87b190a" }, "downloads": -1, "filename": "symlink_gardener-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2fe3f1091d5f653d0e4511a8bb5ec098", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10601, "upload_time": "2018-08-09T03:53:05", "url": "https://files.pythonhosted.org/packages/a9/a7/a7149904a798f9c351aa994e811b17a2ca5d442b692616bf2c16a51e5336/symlink_gardener-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ffd6b2b9a0faaee297e372dad2f7fbd", "sha256": "ce3328a1dc7af366c5c434e31e332b60399684ceefef37027287f1c53afd1798" }, "downloads": -1, "filename": "symlink-gardener-0.2.2.tar.gz", "has_sig": false, "md5_digest": "1ffd6b2b9a0faaee297e372dad2f7fbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10457, "upload_time": "2018-08-09T03:53:09", "url": "https://files.pythonhosted.org/packages/6f/18/4430bf4250f2c0a2453a9c8e27d5f5f242623efda23e14c0b5d0c8fe4019/symlink-gardener-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "7e23e0f72129809fe8254e511b2824fd", "sha256": "240e1174a971472e47cff813b0d0a6f2df73d24f92f503e5515f8027906a16c4" }, "downloads": -1, "filename": "symlink_gardener-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7e23e0f72129809fe8254e511b2824fd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11545, "upload_time": "2019-03-08T23:40:54", "url": "https://files.pythonhosted.org/packages/f5/73/9d230852eaccb79df06734fc5cef06cc500401914842013acf117e75c7ed/symlink_gardener-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da0e248592b492a027e52fbae5a12239", "sha256": "03c86aabf92a975ffea534ffc39c174e896239eeafb585b6e17194b46e423042" }, "downloads": -1, "filename": "symlink-gardener-0.2.3.tar.gz", "has_sig": false, "md5_digest": "da0e248592b492a027e52fbae5a12239", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11627, "upload_time": "2019-03-08T23:40:58", "url": "https://files.pythonhosted.org/packages/f4/a6/6132f1e1c8ec251833267566a6219daa5d7695fb7f8fe8c98b484d161c12/symlink-gardener-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7e23e0f72129809fe8254e511b2824fd", "sha256": "240e1174a971472e47cff813b0d0a6f2df73d24f92f503e5515f8027906a16c4" }, "downloads": -1, "filename": "symlink_gardener-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7e23e0f72129809fe8254e511b2824fd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11545, "upload_time": "2019-03-08T23:40:54", "url": "https://files.pythonhosted.org/packages/f5/73/9d230852eaccb79df06734fc5cef06cc500401914842013acf117e75c7ed/symlink_gardener-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da0e248592b492a027e52fbae5a12239", "sha256": "03c86aabf92a975ffea534ffc39c174e896239eeafb585b6e17194b46e423042" }, "downloads": -1, "filename": "symlink-gardener-0.2.3.tar.gz", "has_sig": false, "md5_digest": "da0e248592b492a027e52fbae5a12239", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11627, "upload_time": "2019-03-08T23:40:58", "url": "https://files.pythonhosted.org/packages/f4/a6/6132f1e1c8ec251833267566a6219daa5d7695fb7f8fe8c98b484d161c12/symlink-gardener-0.2.3.tar.gz" } ] }