The "cgi" command:
This command causes Fossil to generate reply to a CGI request.
The FILE argument is the name of a control file that provides Fossil with important information such as where to find its repository. In a typical CGI deployment, FILE is the name of the CGI script and will typically look something like this:
#!/usr/bin/fossil repository: /home/somebody/project.db
The command name, "cgi", may be omitted if the GATEWAY_INTERFACE environment variable is set to "CGI", which should always be the case for CGI scripts run by a webserver. Fossil ignores any lines that begin with "#".
The following control lines are recognized:
- repository: PATH
- Name of the Fossil repository
- PATH Name of a directory containing many Fossil repositories whose names all end with ".fossil". There should only be one of "repository:" or "directory:"
- notfound: URL
- When in "directory:" mode, redirect to URL if no suitable repository is found.
- When in "directory:" mode, display a page showing a list of available repositories if the URL is "/".
- Grant administrator privileges to connections from 127.0.0.1 or ::1.
- skin: LABEL
- Use the built-in skin called LABEL rather than the default. If there are no skins called LABEL then this line is a no-op.
- files: GLOBLIST
- GLOBLIST is a comma-separated list of GLOB patterns that specify files that can be returned verbatim. This feature allows Fossil to act as a web server returning static content.
- setenv: NAME VALUE
- Set environment variable NAME to VALUE. Or if VALUE is omitted, unset NAME.
- HOME: PATH
- Shorthand for "setenv: HOME PATH"
- cgi-debug: FILE
- Causing debugging information to be written into FILE.
- errorlog: FILE
- Warnings, errors, and panics written to FILE.
- timeout: SECONDS
- Do not run for longer than SECONDS. The default timeout is FOSSIL_DEFAULT_TIMEOUT (600) seconds.
- extroot: DIR
- Directory that is the root of the sub-CGI tree on the /ext page.
- redirect: REPO URL
- Extract the "name" query parameter and search REPO for a check-in or ticket that matches the value of "name", then redirect to URL. There can be multiple "redirect:" lines that are processed in order. If the REPO is "*", then an unconditional redirect to URL is taken.
- jsmode: VALUE
- mainmenu: FILE
- Override the mainmenu config setting with the contents of the given file.
Most CGI files contain only a "repository:" line. It is uncommon to use any other option.
The lines are processed in the order they are read, which is most significant for "errorlog:", which should be set before "repository:" so that any warnings from the database when opening the repository go to that log file.