1. How to obtain the source code of eggs
    1. Individual eggs
      1. Using chicken-install
      2. Using any HTTP client
      3. Fetching the original egg source
    2. All eggs
      1. Using git
      2. Using henrietta-cache

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.