How to obtain the source code of eggs
There are multiple ways to obtain the source of eggs. This document shows the most common possibilities.
Individual eggs
Using chicken-install
chicken-install provides the -retrieve (short: -r) option to retrieve the source code of eggs given as argument. Use the -test option to obtain the source code of the test suite of eggs too, if available.
Example:
$ chicken-install -r -test spiffy
The same invocation works for chicken-install from both CHICKEN 4 and CHICKEN 5.
Using any HTTP client
Eggs are also available as tarballs that can be downloaded with any HTTP[S] client from code.call-cc.org/egg-tarballs/.
Egg tarballs are generated by egg-tarballs.
Fetching the original egg source
If you want to get the source code of an egg from its original source repository, you can find most of them here:
All eggs
Using git
The source code of all available eggs is available via git. At the moment we provide four git repositories which contain source code of eggs:
- eggs-5-latest
- only the latest version of all eggs for CHICKEN 5
- eggs-5-all
- all versions of all eggs for CHICKEN 5
- eggs-4-latest
- only the latest version of all eggs for CHICKEN 4
- eggs-4-all
- all versions of all eggs for CHICKEN 4
To clone these repositories, use your favorite git client and git://code.call-cc.org/<repo> as URL. <repo> is one of the repositories listed above. Example:
$ git clone git://code.call-cc.org/eggs-5-latest
Note that the history of those git repositories does not reflect the development history of eggs. They are just a representation of the cache of the egg servers as git repositories. You can see the history of releases, but not the history of development.
Using henrietta-cache
henrietta-cache is the software used to build up egg caches in the egg servers. henrietta-cache periodically scans the source repositories of all eggs and incrementally updates the caches in egg servers. It uses as input the index of eggs for a given CHICKEN major version. The egg indexes, called egg-locations files, are available in the CHICKEN central Subversion server.
You can otain a copy of the egg-location files here:
To use henrietta-cache to fetch eggs you can run it like:
$ henrietta-cache -r 5 -c chicken-5-eggs -e egg-locations
Where 5 is the CHICKEN major release, chicken-5-eggs is the directory where the source code of eggs is going to be downloaded to and egg-locations is the egg-locations file.
Note that for some eggs, those available via HTTPS, you might need to install the openssl egg additionally to henrieta-cache, as it is an optional dependency.
You also need some external programs to extract the archives obtained by henrietta-cache. See its documentation for more information.