{ "info": { "author": "Peter Uittenbroek", "author_email": "uittenbroek@goldmund-wyldebeast-wunderliebe.com", "bugtrack_url": null, "classifiers": [ "Framework :: Buildout", "Intended Audience :: Developers", "License :: OSI Approved :: Zope Public License", "Topic :: Software Development :: Build Tools" ], "description": "Buildout Eggscleaner\n======================\n\nIntroduction\n------------\nThe buildout.eggscleaner extensions can be used to ensure your egg directory only contains 'used' eggs.\nThe extension can report, but also move unused eggs to a specified directory.\n\n\nInstallation\n------------\nEggscleaner is a buildout extensions, can add it like so ::\n\n [buildout]\n extensions =\n buildout.eggscleaner\n\n\nOptions\n----------\nold-eggs-directory\n The directory you want buildout.eggscleaner to move your unused eggs to.\n Should an excact egg already exist, we remove the one in the ''used'' eggs directory\n\n\nExample :: \n\n [buildout] \n extensions = \n buildout.eggscleaner \n old-eggs-directory = ${buildout:directory}/old-eggs/\n\nTested with \n-------------\nzc.buildout: 1.4.3, 1.5.1, 1.5.2, 1.6.0, 2.2.1\npython: 2.4.6, 2.6.8\n\nWorking with other extensions\n-----------------------------\nI looked at how buildout.dumppickedversions works and made this extension work in a similar manner.\nThis extension will run alongside that one perfectly well.\n\n\nExample outputs\n----------------\n\nNothing do ::\n\n *************** BUILDOUT EGGSCLEANER ****************\n No unused eggs in eggs directory\n *************** /BUILDOUT EGGSCLEANER ****************\n\n\nMoving eggs ::\n\n *************** BUILDOUT EGGSCLEANER ****************\n Moved unused egg: webcouturier.dropdownmenu-2.3-py2.6.egg \n Moved unused egg: collective.uploadify-1.0-py2.6.egg \n Moved unused egg: collective.simplesocial-1.6-py2.6.egg \n Moved unused egg: collective.autopermission-1.0b2-py2.6.egg \n *************** /BUILDOUT EGGSCLEANER ****************\n\nReporting ::\n\n *************** BUILDOUT EGGSCLEANER ****************\n Don't have a 'old-eggs-directory' set, only reporting\n Can add it by adding 'old-eggs-directory = ${buildout:directory}/old-eggs' to your [buildout]\n Found unused egg: webcouturier.dropdownmenu-2.3-py2.6.egg \n Found unused egg: plone.recipe.command-1.1-py2.6.egg \n Found unused egg: collective.uploadify-1.0-py2.6.egg \n Found unused egg: Products.DocFinderTab-1.0.5-py2.6.egg \n Found unused egg: collective.simplesocial-1.6-py2.6.egg \n Found unused egg: collective.autopermission-1.0b2-py2.6.egg \n Found unused egg: Products.Clouseau-1.0-py2.6.egg \n *************** /BUILDOUT EGGSCLEANER ****************\n\n\nDetailed Documentation\n======================\n\n\nLet's create an egg to use it in our tests::\n\n >>> mkdir('myegg')\n >>> write('myegg', 'setup.py',\n ... '''\n ... from setuptools import setup\n ... setup(name='myegg', version='1.0',)\n ... ''')\n >>> write('myegg', 'README', '')\n >>> print system(buildout+' setup myegg bdist_egg'), # doctest: +ELLIPSIS\n Running setup script 'myegg/setup.py'.\n ...\n\n >>> mkdir('baregg') \n >>> write('baregg', 'setup.py', \n ... ''' \n ... from setuptools import setup \n ... setup(name='baregg', version='1.0',) \n ... ''') \n >>> write('baregg', 'README', '') \n >>> print system(buildout+' setup baregg bdist_egg'), # doctest: +ELLIPSIS \n Running setup script 'baregg/setup.py'. \n ... \n\nNow let's create a buildout to install the egg and to use buildout.eggscleaner::\n\n >>> write('buildout.cfg',\n ... '''\n ... [buildout]\n ... index = http://pypi.python.org/simple\n ... extensions = buildout.eggscleaner\n ... eggs-directory = ${buildout:directory}/eggs\n ... parts = foo\n ... find-links += %s\n ... [foo]\n ... recipe = zc.recipe.egg\n ... eggs = myegg\n ... ''' % join('myegg', 'dist'))\n\nRunning the buildout will print information about unused eggs::\n\n >>> print system(buildout), # doctest: +ELLIPSIS\n Getting distribution for 'buildout.eggscleaner'.\n ...\n\n\nWhen we only want to report unused eggs we omit the '''old-eggs-directory''' option.\n\n >>> write('buildout.cfg',\n ... '''\n ... [buildout]\n ... index = http://pypi.python.org/simple\n ... extensions = buildout.eggscleaner\n ... eggs-directory = ${buildout:directory}/eggs\n ... parts = foo \n ... find-links += %s \n ... [foo] \n ... recipe = zc.recipe.egg \n ... eggs = baregg \n ... ''' % join('baregg', 'dist')) \n\n >>> print system(buildout) # doctest:+ELLIPSIS \n Uninstalling foo.\n Installing foo.\n Getting distribution for 'baregg'.\n Got baregg 1.0.\n *************** BUILDOUT EGGSCLEANER ****************\n Don't have a 'old-eggs-directory' set, only reporting\n Can add it by adding 'old-eggs-directory = ${buildout:directory}/old-eggs' to your [buildout]\n ...\n Found unused egg: myegg...\n *************** /BUILDOUT EGGSCLEANER ****************\n \n\n\n\nCheck that indeed nothing has been moved nor deleted::\n\n >>> assert 'myegg' in ''.join(os.listdir('eggs'))\n\nIf we want to move unused eggs, we just add an ``old-eggs-directory`` option and give a directory target::\n\n >>> write('buildout.cfg',\n ... '''\n ... [buildout]\n ... index = http://pypi.python.org/simple\n ... extensions = buildout.eggscleaner\n ... eggs-directory = ${buildout:directory}/eggs\n ... old-eggs-directory = ${buildout:directory}/old-eggs\n ... parts = foo \n ... find-links += %s \n ... [foo] \n ... recipe = zc.recipe.egg \n ... eggs = baregg \n ... ''' % join('baregg', 'dist')) \n\n >>> print system(buildout) # doctest:+ELLIPSIS \n Updating foo.\n *************** BUILDOUT EGGSCLEANER ****************\n ...\n Moved unused egg: myegg...\n *************** /BUILDOUT EGGSCLEANER ****************\n \n\nCheck that indeed 'myegg' has been moved::\n\n >>> assert 'myegg' not in ''.join(os.listdir('eggs')), 'myegg has not been moved out of egg dir'\n >>> assert 'myegg' in ''.join(os.listdir('old-eggs')), 'myegg has not been moved to old-egg dir'\n\nAnd baregg is still present::\n\n >>> assert 'baregg' in ''.join(os.listdir('eggs')), 'baregg is not present in egg dir'\n\n\nContributors\n============\n\n- Peter Uittenbroek, Author\n\n\nChange history\n==============\n\n0.1.7 (2014-07-18)\n------------------\n- Bump version to fix previous release mess\n\n0.1.6 (unreleased by mistake)\n-----------------------------\n\n- Make eggscleaner run under windows\n [anton-tagunov]\n\n- Make eggscleaner work with latests buildout (2.2.1)\n [anton-tagunov]\n\n- Only run eggscleaner when eggs-directory is local\n [thepjot]\n\n0.1.5 (2012-08-17)\n-------------------\n\n- Redid documentation\n [thepjot]\n\n- Added doctest\n [thepjot]\n\n0.1 (internal release)\n-----------------------\n- Creation\n [thepjot]", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/thepjot/buildout.eggscleaner", "keywords": "buildout extensions eggs directory clean", "license": "ZPL", "maintainer": null, "maintainer_email": null, "name": "buildout.eggscleaner", "package_url": "https://pypi.org/project/buildout.eggscleaner/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/buildout.eggscleaner/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/thepjot/buildout.eggscleaner" }, "release_url": "https://pypi.org/project/buildout.eggscleaner/0.1.7/", "requires_dist": null, "requires_python": null, "summary": "A buildout extension to move non-used eggs to a specified directory", "version": "0.1.7" }, "last_serial": 1161763, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "86c4bd784925014833d783fddd61b24f", "sha256": "ca1dc7a771d6cd9570715aaae2ecbc0cabd28bc3e32d9dfa0b4d38a000e3fb35" }, "downloads": -1, "filename": "buildout.eggscleaner-0.1.2.zip", "has_sig": false, "md5_digest": "86c4bd784925014833d783fddd61b24f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14259, "upload_time": "2012-08-17T12:29:51", "url": "https://files.pythonhosted.org/packages/db/3c/30f6cd3b8d82b8584df9bc973dd9462a81156aec6867379d5c082ac6b902/buildout.eggscleaner-0.1.2.zip" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "fb2c3c33b7bf2da885bcd039af8c5151", "sha256": "47623327ca643219fcbc99e0f0749b903309027d56ce6200c6187002485737fa" }, "downloads": -1, "filename": "buildout.eggscleaner-0.1.3.zip", "has_sig": false, "md5_digest": "fb2c3c33b7bf2da885bcd039af8c5151", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14194, "upload_time": "2012-08-17T12:32:51", "url": "https://files.pythonhosted.org/packages/b8/0c/078a239b756d1bad0ae83300469fb84b411c46e1f054ff3af4bf32464024/buildout.eggscleaner-0.1.3.zip" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "a35e577f5a358d61e95208fde27e4fdd", "sha256": "dd33753217fb759a7c8db436a26f8da1ec1a8152a641f7da25297f103b23240a" }, "downloads": -1, "filename": "buildout.eggscleaner-0.1.4.zip", "has_sig": false, "md5_digest": "a35e577f5a358d61e95208fde27e4fdd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14056, "upload_time": "2012-08-17T13:17:04", "url": "https://files.pythonhosted.org/packages/b4/99/255c7d1385aafb88ca6f43d7925f7f8722f45da64d783569709f8586b279/buildout.eggscleaner-0.1.4.zip" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "74254a4dd9fdb8013409d07e4296bb69", "sha256": "6999fa7b2df7518c6d37ea5b587f078cb7755baa84ce70e6ba601d6da73f6fab" }, "downloads": -1, "filename": "buildout.eggscleaner-0.1.5.zip", "has_sig": false, "md5_digest": "74254a4dd9fdb8013409d07e4296bb69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14996, "upload_time": "2012-08-17T13:19:08", "url": "https://files.pythonhosted.org/packages/c9/73/87a04568b66ee348063ac8b480b9cb5ae5b020cfc81ad637a6fc8d25f747/buildout.eggscleaner-0.1.5.zip" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "22fd7f9ea6efc1d0f0bbafa28cd53671", "sha256": "768a3e163ac1b0f86ceeb76a425843fb4998a65d6a6c37bac8fb7b336793b0d6" }, "downloads": -1, "filename": "buildout.eggscleaner-0.1.6.zip", "has_sig": false, "md5_digest": "22fd7f9ea6efc1d0f0bbafa28cd53671", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15694, "upload_time": "2014-07-18T13:39:23", "url": "https://files.pythonhosted.org/packages/46/d4/e32867c0ef123f57b0d6a73c25ae13e0a050cc927454f01fe9cb3886b5b5/buildout.eggscleaner-0.1.6.zip" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "09faef8c498742bdeacac9d83f887e75", "sha256": "e88a5929afd22d7b8b6ae932f12bfbe3c23294431c18cd7015e5c6200aef024d" }, "downloads": -1, "filename": "buildout.eggscleaner-0.1.7.zip", "has_sig": false, "md5_digest": "09faef8c498742bdeacac9d83f887e75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15821, "upload_time": "2014-07-18T13:40:48", "url": "https://files.pythonhosted.org/packages/1b/4a/82df40613c58d939d8bf7c3e25aefc6ca5b8ce9c6fa87f5b771c29af5d6d/buildout.eggscleaner-0.1.7.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "09faef8c498742bdeacac9d83f887e75", "sha256": "e88a5929afd22d7b8b6ae932f12bfbe3c23294431c18cd7015e5c6200aef024d" }, "downloads": -1, "filename": "buildout.eggscleaner-0.1.7.zip", "has_sig": false, "md5_digest": "09faef8c498742bdeacac9d83f887e75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15821, "upload_time": "2014-07-18T13:40:48", "url": "https://files.pythonhosted.org/packages/1b/4a/82df40613c58d939d8bf7c3e25aefc6ca5b8ce9c6fa87f5b771c29af5d6d/buildout.eggscleaner-0.1.7.zip" } ] }