You are looking at historical revision 15150 of this page. It may differ significantly from its current revision.
Salmonella -- a tool for testing Chicken eggs
Salmonella is a tool for testing Chicken eggs from a local or remote repository.
Salmonella fetches a list of eggs from a local egg repository, or from a server via the henrietta script, and tries to install each egg, reporting failure or success. Each egg is individually tested, that is, salmonella sets the local destination repository empty before testing an egg (it's like installing an egg on a fresh repository, so broken dependencies can be spotted).
Some salmonella features:
- Automatic eggs fetching and installation testing
- Possibility of hooking system's package manager (e.g., apt, rpm) for installing OS packages eggs might depend on
- Logging and verbosity control
Salmonella is a command line tool. Salmonella's command line arguments' syntax is like Scheme's.
Usage: salmonella -h | -help | --help | -? salmonella <conf-file> salmonella <options> <options> are Scheme expressions. <conf-file> is a file which may contain the same Scheme expressions as <options>'s. The following expressions are recognized: == Expression == == Default == (chicken-install "<path to chicken-install>") chicken-install (chicken-install-args "<args>" a procedure which returns "-prefix (repo-test-dir)" (env-vars "<environment variables settings>" CHICKEN_REPOSITORY=(repo-test-dir) CHICKEN_INCLUDE_PATH=(repo-test-dir) (repo-test-dir "<path to repo-test-dir>") `pwd`/salmonella-repo (skip-eggs (list "egg1" "egg2" ...)) '() (verbose <bool>) #f (logfile "filename") salmonella.log (eggs (lambda () ...)) a procedure which fetches eggs list (system-deps "filename") #f (pkg-manager "system pkg manager & args") #f (resume <bool>) #f (dont-ask <bool>) #f (progress-file "filename") salmonella.progress (html-output "dirname") salmonella-report. If #f, no HTML output (css-file "filename") #f
Example: salmonella '(chicken-install "/usr/local/chicken/bin/chicken-install") (verbose #t)'
- chicken-install: full path to the chicken-install program. Default is "chicken-install".
- chicken-install-args: a procedure which returns arguments to be passed to chicken-install. Default is -prefix (repo-test-dir).
- env-vars: environment variable settings to be applied when chicken-install is invoked. Default is CHICKEN_REPOSITORY=(repo-test-dir) CHICKEN_INCLUDE_PATH=(repo-test-dir) (where (repo-test-dir) is a salmonella parameter).
- repo-test-dir: full path to the the directory salmonella will use for testing the installation og eggs. Default is "salmonella-repo".
- skip-eggs: list of eggs to skip from testing. Default is '().
- eggs: a zero-argument procedure which should return a list of egg names (strings).
- verbose: controls if salmonella should be verbose. Default is #f.
- dont-ask: salmonella won't ask any question before running and will use the default values for parameters not explicitly set. Default is #f.
- system-deps: path to a file indicating which OS packages should be installed when testing eggs. The file format is:
(egg1 package1 package2 ... packagen) (egg2 package1 package2 ... packagen)
This option should be used with the pkg-manager option. Default is #f.
- pkg-manager: path to the system package manager and its arguments. It's used with the system-deps option to install system packages which some eggs depend on. Default is #f.
- logfile: path to the file where logging information is stored. Default is "salmonella.log".
- resume: tells salmonella that it should continue from the point it last stopped. Salmonella uses information from the file indicated by the progress-file. Default is #f.
- progress-file: keeps track of which eggs were already tested (useful for resuming -- see the resume option). Default is "salmonella.progress".
- html-output: path to the directory where the HTML output should be saved. If the directory exists, it will be deleted. If #f, no HTML output is generated. Default is "salmonella-report".
- css-file: CSS file to be used in the HTML-formated output. Default is #f -- a built-in CSS code is used.