Wigwam comes with a large number of programs, mostly (or all) implemented as shell scripts. This section describes each of these programs, in rough groups by how they are used.
publish a version of the site to a live or staging server.
ext/bin/litemass [-h "hosts"] [-i identity-file] [-l username] [-r] [-v] [program] [args...]
Run the specified program in parallel on the specified hosts. Unless -v is turned on, the program's output is printed only if it fails.
run a script or program, allowing the standard user configuration and hooks.
ext/bin/wigdo [command]
run a command with all the Wigwam configuration (project, cluster, and role) exported to the environment. The command is passed to /bin/sh; it is probably best to always quote it:
wigdo 'echo LOCAL_VAR is $LOCAL_VAR'
|
These are programs you will rarely need to run directly. Understanding their internals is marginally useful for obscure things, but mostly this section will be useful for those who have the misfortune of having to debug these tools.
Print name of last publishing tag with given prefix. (Chiefly for use by pubtool.)
...
Load playpen-specific configuration variables.
This script sets PLAYPEN_ROLE and PLAYPEN_CLUSTER (if applicable), sources all the environment setting scripts added by all packages, and sources the following scripts:
etc/clusters/$PLAYPEN_CLUSTER/config.pre
etc/roles/$PLAYPEN_ROLE/config.pre
ext/etc/project.defaults
etc/project.conf
etc/clusters/$PLAYPEN_CLUSTER/config
etc/roles/$PLAYPEN_ROLE/config
For each script, before it is sourced, the same filename with .pre.local is tried. After each script is sourced, the same filename with .post.local appended is tried. These are intended to be configurations and overrides which are not in CVS. In general, no .local files should be checked into CVS.)
Set up a bunch of macros that are mostly used for portability. Please see Appendix C.
Though these are not generally needed, they are documented for those who have to maintain Wigwam, or debug a packaging problem.
Test whether PACKAGE is installed at least version VERSION.
Exits if the first version number is equal or greater than the second version number.
Optionally downloads and builds the specified package.
Builds a package of the stated type. This script should always be run by build-package which will figure the type by looking at the $PACKAGE-$VERSION.type file. The default type is configure for packages conforming to the GNU standard. Perl style packages are those that have a Makefile.PL. raw packages have their own custom build script.
Expands TARBALL so its base file is in OUTPUT_DIR, then apply the patches in left-to-right order. OUTPUT_DIR must not exist when this script is run. PATCHES may be an empty string, but must be present even if it is empty.
Moves the contents of SOURCE_DIR over DEST_DIR.
Returns the version of PACKAGE that will be/is installed (it will be installed if update-packages is run successfully.)
Given downloaded package files, determine the basic package info: name of the tarball, list of patches, architecture to use.
Indicate to the packaging system that PACKAGE has been successfully installed in this playpen, at version VERSION.
Indicate to the packaging system that PACKAGE has been uninstalled.
Prints a 'propeller' to stderr while copying to the logfile.
If a command is given, it is executed and its standard error and output are used as input to the propeller. In this case, propeller will exit with the status of its subprocess.
You may set WIGWAM_PROPELLER_MODE to one of the following values:
Mode: stderr
Description: Copy standard output and error to the propeller's stderr.
Mode: propeller
Description: Normal mode of operation.
Mode: quiet
Description: Output nothing.
Mode: terse
Description: Output the start and end messages on the same line.
Mode: linewise
Description: Output the start and end messages on separate lines, with nothing in between.
Though these are not generally needed, they are documented for those who have to maintain Wigwam, or debug a service problem.
From a service-name, this will tell you the package name and version.