This recipe is used to generate buildout-cache.tar.gz2 file.
The recipe was inspired by update-packages script from Plone Installers-UnifiedInstaller (https://github.com/plone/Installers-UnifiedInstaller/blob/master/update_packages.py)
The recipe will start a buildout with forced eggs-directory and download-cache. After it will deleted eggs with binary components, make some cleanup, and finally generate compressed file contains buildout-cache.
The recipe supports the following optionnal options:
.. Note to recipe author!
For each option the recipe uses you should include a description
about the purpose of the option, the format and semantics of the
values it accepts, whether it is mandatory or optional and what the
default value is if it is omitted.
Name of target compressed file. Default value is `buildout-cache.tar.bz2`.
Name of buildout file which be used for constuction of buildout cache. Default value is `buildout.cfg`.
Directory where eggs are downloaded for creation of tar.gz2 file. This directroy is deleted before and after the script. Default value is `tmp`.
Timeout using for buildout in second. If no timeout define but a socket-timeout into buildout section, socket-timeout value is used. Default value is 10.
Sometime we want to keep word_dir if a build failed. Default value is True, so work_dir will be deleted by default.
We'll start by creating a `buildout.cfg` file that uses the recipe:
parts = makebuildoutcache
recipe = collective.recipe.buildoutcache
target = buildout-cache.tar.bz2
buildout_file = buildout.cfg
work_dir = my-temp-buildout-work-dir
For recipe installation you can make this command line:
./bin/buildout install makebuildoutcache
And start recipe script:
Then all these packages will download temporally into the directory **my-temp-buildout-work-dir** defined and later it will create a **buildout-cache.tar.bz2** file in the Buildout directory.
The **buildout-cache.tar.bz2** archive contains one single buildout-cache folder. In this folder, there are 2 folders:
* **eggs:** contains all eggs use by your buildout except eggs which have to be compiled.
* **downloads:** contains zip eggs which must be compiled (as AccessControl, lxml, Pillow, ZODB, ...).
Before starting a buildout, we download and extract buildout-cache and use it on our buildout directory. We add eggs-directory and download-cache parameters on buildout section like this:
eggs-directory = buildout-cache/eggs
download-cache = buildout-cache/downloads
- Benoît Suttor, Original Author
- Fix way to get bool from a str.
- Add preremove_old_work_dir option. You can now not delete work dir if a build failed.
- Add timeout option
- Return code if bin/buildout do not work during construction of cache.
- Package created using templer
TODO: Brief introduction on what you do with files - including link to relevant help section.