INTERCHANGE(1)

NAME
interchange - an e-commerce and general HTTP database display system

SYNOPSIS
interchange [--options] [file]

VERSION
5.6.1

DESCRIPTION
Interchange is a database access and retrieval system focused on e-commerce. It allows customers to select items to buy from catalog pages. The program tracks user information in sessions and interacts with an HTTP server through sockets.

Interchange has many, many, functions and features; they are too numerous to describe in this venue. Complete information can be found at its web site:

                http://www.icdevgroup.org/

Interchange requires Perl 5.8.0 or higher; more information on Perl can be seen at:

                http://www.perl.com/

OPTIONS
Interchange uses the Getopt::Long module, and most options will be recognized if they uniquely identifiable. The canonical forms are:

-a, --add
    Add a catalog to the system. Information taken from the input file (or standard input). Implies reconfig=catalog. Example:

      echo "Catalog simple /catalogs/simple /simple.cgi" | bin/interchange -a

    The information is in the form of a standard Interchange catalog line, and must be in the single-line format.

--runjobs=catalog[=job]
    Run a jobs group which is a series of files in a directory with the name corresponding to the "job". For instance, if you set up a directory called "weekly" in your pages directory for the catalog "foundation", you can run those files with:

            interchange --runjobs=foundation=weekly

    Files ending in .html (or whatever HTMLsuffix is for that catalog) are skipped. It is not tree-recursive -- directories are ignored.

    Results can be emailed to an address if you specify --email=address, and they will be put in the jobs log file.

    Alternatively jobs can be specified with --jobgroup=jobname before the --runjobs option. In other words, this will work:

            interchange --jobgroup=weekly --runjobs=foundation

    This will NOT work:

            interchange --runjobs=foundation --jobgroup=weekly

-d dir, --dir=dir
    Directory for VendRoot. This is where the Interchange configuration file will be looked for (if not redefined with "-f"), and where the log file will go (if not redefined with the ErrorFile directive).

-e name, --exclude=name
    Exclude catalog from this startup.

-email=address
    Email address to email jobs results to.

-f file, --config=file
    Configuration file to use (default is interchange.cfg in VendRoot).

-h, --help
    Display help on command line options.

-i, --inetmode
    Run with internet-domain socket only. Normally Interchange runs with both UNIX- and internet-domain sockets (except on Windows).

--jobgroup=job
    Sets the job for --runjobs if that is not included in the --runjobs call. MUST precede the --runjobs entry on the command line.

            interchange --jobgroup=weekly --runjobs=foundation

    See --runjobs for an explanation of what this does.

--kill [signal]
    By default, kills the server ungracefully with signal KILL (9, usually). The optional signal will be sent instead if supplied.

-q, --quiet
    Suppress informational messages on startup. Only errors are shown.

--reconfig=name
    Cause only catalog "name" to re-read its configuration.

--remove=catalog
    Remove a catalog from operation; any future requests will get a not-found message.

-r, --restart
    Stop and restart the server. This may take a long time if many catalogs are in use, and will temporarily take the system offline. If you want to change a UserTag, use the --add option instead.

--serve
    This is the default if no mode options (--reconfig, --kill, --restart, etc.) are supplied.

--stop
    Stop server gracefully with a TERM signal.

-t, --test
    Report problems with config files; causes a complete configuration of the Interchange server but no server start.

-u, --unix
    Run with unix-domain socket only. Normally Interchange runs with both UNIX- and internet-domain sockets. This will not work on Windows.

-v, --version
    Display program version.

--DEBUG=1
    Set to true value to run foreground in debug mode. It is normal to receive warnings about various things if you run with perl -w.

Directive=value
    Set a Interchange global directive upon start (or --restart). Example:

            interchange SocketPerms=0666

    This will start the server and override the default of SocketPerms or the value set in interchange.cfg for this instance only. Any --restarts must re-specify the directive if it is still to have that value.

name:Directive=value
    Set a Interchange directive for catalog "name" upon start (or --restart). Example:

            interchange simple:VendURL="http://localhost/cgi-bin/simple"

    This will start the server and override the default of VendURL for the value set in catalog.cfg for this instance only. Any --restarts must re-specify the directive if it is still to have that value.

SEE ALSO
compile_link(1), config_prog(1), configdump(1), dump(1), expire(1), expireall(1), localize(1), makecat(1), offline(1), restart(1), update(1), http://www.icdevgroup.org/

LICENSE
Interchange comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute and modify it under the terms of the GNU General Public License.

COPYRIGHT
    Copyright (C) 2002-2008 Interchange Development Group
    Copyright (C) 1995-2002 Red Hat, Inc.
    All rights reserved except those granted in the license.

AUTHOR
Mike Heins is the primary author of Interchange.

The Interchange Development Group is:

Dan Browning David Kelly Davor Ocelic Ethan Rowe Gert van der Spoel Greg Hanson Jon Jensen Jonathan Clark Kevin Walsh Mark Johnson Mike Heins Paul Vinciguerra Peter Ajamian Stefan Hornburg (aka Racke), captain Randy Moore Ron Phipps Ton Verhagen

Please do not contact the authors directly for help with the system. Use the Interchange mail list:

    interchange-users@icdevgroup.org

Information on subscribing to the list, as well as general information and documentation for Interchange is at:

    http://www.icdevgroup.org/

ACKNOWLEDGEMENTS
Original author of Vend, ancestor to Minivend and Interchange, was Andrew Wilcox <amw@wilcoxsolutions.com>. Interchange could never have come into being without him. Interchange was based on Vend 0.2, with portions from Vend 0.3; both were produced in 1995.

Contributions to Interchange have been made by:

    Andreas Koenig           Jason Holt
    Bill Carr                Jason Kohles
    Bill Dawkins             Javier Martin
    Bill Randle              Jeff Carnahan
    Birgitt Funk             Jeff Nappi
    Bob Jordan               Jochen Wiedmann
    Brev Patterson           José Mª Revuelto
    Brian Bullen             Jure Kodzoman
    Brian Kosick             Jurgen Botz
    Bruce Albrecht           Keiko
    Cameron Prince           Keith Oberlin
    Chen Naor                Kim Lauritz Christensen
    Christian Mueller        Larry Leszczynski
    Christopher Miller       Marc Austin
    Christopher Thompson     Mark Stosberg
    Dan Busarow              Massimiliano Ciancio
    Dan Helfman              Matthew Schick
    Daniel Thompson          Michael McCune
    Dave Wingate             Michael Wilk
    David Adams              Mike Frager
    Dennis Cronin            Neil Evans
    Don Grodecki             Nelson Ferrari
    Ed LaFrance              Raj Goel
    Frank Bonita             Ray Desjardins
    Frederic Steinfels       Shozo Murahashi
    Gunnar Hellekson         Sonny Cook
    Hamish Bradick           Tim Baverstock
    Hans-Joachim Leidinger   Tom Friedel
    Heinz Wittenbecher       Tommi Laberno
    Hiroyuki Cozy Kojima     Troy Davis
    Ignacio Lizarán          Victor Nolton
    Jack Tsai                William Dan Terry
    and many others

and, of course, the entire Perl team without whom Interchange could not exist.