]> git.cameronkatri.com Git - cgit.git/blobdiff - cgitrc.5.txt
README: times, they are a-changin
[cgit.git] / cgitrc.5.txt
index 5903a938c8c4cbe9c5b1e110ae8fbbb787f656f9..902fff3e6674115e708cfe2b3f917632468f0070 100644 (file)
@@ -42,7 +42,7 @@ agefile::
 
 cache-root::
        Path used to store the cgit cache entries. Default value:
 
 cache-root::
        Path used to store the cgit cache entries. Default value:
-       "/var/cache/cgit".
+       "/var/cache/cgit". See also: "MACRO EXPANSION".
 
 cache-dynamic-ttl::
        Number which specifies the time-to-live, in minutes, for the cached
 
 cache-dynamic-ttl::
        Number which specifies the time-to-live, in minutes, for the cached
@@ -70,12 +70,21 @@ cache-static-ttl::
        version of repository pages accessed with a fixed SHA1. Default value:
        "5".
 
        version of repository pages accessed with a fixed SHA1. Default value:
        "5".
 
+case-sensitive-sort::
+       Sort items in the repo list case sensitively. Default value: "1".
+       See also: section-sort.
+
 clone-prefix::
        Space-separated list of common prefixes which, when combined with a
        repository url, generates valid clone urls for the repository. This
        setting is only used if `repo.clone-url` is unspecified. Default value:
        none.
 
 clone-prefix::
        Space-separated list of common prefixes which, when combined with a
        repository url, generates valid clone urls for the repository. This
        setting is only used if `repo.clone-url` is unspecified. Default value:
        none.
 
+clone-url::
+       Space-separated list of clone-url templates. This setting is only
+       used if `repo.clone-url` is unspecified. Default value: none. See
+       also: "MACRO EXPANSION", "FILTER API".
+
 commit-filter::
        Specifies a command which will be invoked to format commit messages.
        The command will get the message on its STDIN, and the STDOUT from the
 commit-filter::
        Specifies a command which will be invoked to format commit messages.
        The command will get the message on its STDIN, and the STDOUT from the
@@ -101,11 +110,24 @@ enable-filter-overrides::
        Flag which, when set to "1", allows all filter settings to be
        overridden in repository-specific cgitrc files. Default value: none.
 
        Flag which, when set to "1", allows all filter settings to be
        overridden in repository-specific cgitrc files. Default value: none.
 
+enable-gitweb-desc::
+       If set to "1" and scan-path is enabled, we first check each repository
+       for the git config value "gitweb.description" to determine the owner.
+       Otherwise, the description is read from a file titled "description"
+       inside of the repository directory.
+       Default value: "1". See also: scan-path.
+
 enable-gitweb-owner::
        If set to "1" and scan-path is enabled, we first check each repository
        for the git config value "gitweb.owner" to determine the owner.
        Default value: "1". See also: scan-path.
 
 enable-gitweb-owner::
        If set to "1" and scan-path is enabled, we first check each repository
        for the git config value "gitweb.owner" to determine the owner.
        Default value: "1". See also: scan-path.
 
+enable-gitweb-section::
+       If set to "1" and scan-path is enabled, we first check each repository
+       for the git config value "gitweb.category" to determine the repository's
+       section. This value is overridden if section-from-path is enabled.
+       Default value: "1". See also: scan-path section-from-path.
+
 enable-http-clone::
        If set to "1", cgit will act as an dumb HTTP endpoint for git clones.
        If you use an alternate way of serving git repositories, you may wish
 enable-http-clone::
        If set to "1", cgit will act as an dumb HTTP endpoint for git clones.
        If you use an alternate way of serving git repositories, you may wish
@@ -161,7 +183,7 @@ header::
 
 include::
        Name of a configfile to include before the rest of the current config-
 
 include::
        Name of a configfile to include before the rest of the current config-
-       file is parsed. Default value: none.
+       file is parsed. Default value: none. See also: "MACRO EXPANSION".
 
 index-header::
        The content of the file specified with this option will be included
 
 index-header::
        The content of the file specified with this option will be included
@@ -221,11 +243,22 @@ mimetype.<ext>::
        Set the mimetype for the specified filename extension. This is used
        by the `plain` command when returning blob content.
 
        Set the mimetype for the specified filename extension. This is used
        by the `plain` command when returning blob content.
 
+mimetype-file::
+       Specifies the file to use for automatic mimetype lookup. If specified
+       then this field is used as a fallback when no "mimetype.<ext>" match is
+       found. If unspecified then no such lookup is performed. The typical file
+       to use on a Linux system is /etc/mime.types. Default value: none. See
+       also: "mimetype.<ext>". The format of the file must comply to:
+       - a comment line is an empty line or a line starting with a hash (#),
+         optionally preceded by whitespace
+       - a non-comment line starts with the mimetype (like image/png), followed
+         by one or more file extensions (like jpg), all separated by whitespace
+
 module-link::
        Text which will be used as the formatstring for a hyperlink when a
        submodule is printed in a directory listing. The arguments for the
        formatstring are the path and SHA1 of the submodule commit. Default
 module-link::
        Text which will be used as the formatstring for a hyperlink when a
        submodule is printed in a directory listing. The arguments for the
        formatstring are the path and SHA1 of the submodule commit. Default
-       value: "./?repo=%s&page=commit&id=%s"
+       value: none.
 
 nocache::
        If set to the value "1" caching will be disabled. This settings is
 
 nocache::
        If set to the value "1" caching will be disabled. This settings is
@@ -243,7 +276,8 @@ noheader::
 project-list::
        A list of subdirectories inside of scan-path, relative to it, that
        should loaded as git repositories. This must be defined prior to
 project-list::
        A list of subdirectories inside of scan-path, relative to it, that
        should loaded as git repositories. This must be defined prior to
-       scan-path. Default value: none. See also: scan-path.
+       scan-path. Default value: none. See also: scan-path, "MACRO
+       EXPANSION".
 
 readme::
        Text which will be used as default value for "repo.readme". Default
 
 readme::
        Text which will be used as default value for "repo.readme". Default
@@ -295,18 +329,25 @@ scan-path::
        scan-path loads only the directories listed in the file pointed to by
        project-list. Be advised that only the global settings taken
        before the scan-path directive will be applied to each repository.
        scan-path loads only the directories listed in the file pointed to by
        project-list. Be advised that only the global settings taken
        before the scan-path directive will be applied to each repository.
-       Default value: none. See also: cache-scanrc-ttl, project-list.
+       Default value: none. See also: cache-scanrc-ttl, project-list,
+       "MACRO EXPANSION".
 
 section::
        The name of the current repository section - all repositories defined
        after this option will inherit the current section name. Default value:
        none.
 
 
 section::
        The name of the current repository section - all repositories defined
        after this option will inherit the current section name. Default value:
        none.
 
+section-sort::
+       The way in which repositories in each section are sorted. Valid values
+       are "name" for sorting by the repo name or "age" for sorting by the
+       most recently updated repository. Default value: "name". See also:
+       section, case-sensitive-sort.
+
 section-from-path::
        A number which, if specified before scan-path, specifies how many
        path elements from each repo path to use as a default section name.
        If negative, cgit will discard the specified number of path elements
 section-from-path::
        A number which, if specified before scan-path, specifies how many
        path elements from each repo path to use as a default section name.
        If negative, cgit will discard the specified number of path elements
-       above the repo directory. Default value: 0.
+       above the repo directory. Default value: "0".
 
 side-by-side-diffs::
        If set to "1" shows side-by-side diffs instead of unidiffs per
 
 side-by-side-diffs::
        If set to "1" shows side-by-side diffs instead of unidiffs per
@@ -361,7 +402,7 @@ repo.about-filter::
 
 repo.clone-url::
        A list of space-separated urls which can be used to clone this repo.
 
 repo.clone-url::
        A list of space-separated urls which can be used to clone this repo.
-       Default value: none.
+       Default value: none. See also: "MACRO EXPANSION".
 
 repo.commit-filter::
        Override the default commit-filter. Default value: none. See also:
 
 repo.commit-filter::
        Override the default commit-filter. Default value: none. See also:
@@ -370,7 +411,8 @@ repo.commit-filter::
 repo.defbranch::
        The name of the default branch for this repository. If no such branch
        exists in the repository, the first branch name (when sorted) is used
 repo.defbranch::
        The name of the default branch for this repository. If no such branch
        exists in the repository, the first branch name (when sorted) is used
-       as default instead. Default value: "master".
+       as default instead. Default value: branch pointed to by HEAD, or
+       "master" if there is no suitable HEAD.
 
 repo.desc::
        The value to show as repository description. Default value: none.
 
 repo.desc::
        The value to show as repository description. Default value: none.
@@ -404,6 +446,18 @@ repo.logo-link::
        calculated url of the repository index page will be used. Default
        value: global logo-link.
 
        calculated url of the repository index page will be used. Default
        value: global logo-link.
 
+repo.module-link::
+       Text which will be used as the formatstring for a hyperlink when a
+       submodule is printed in a directory listing. The arguments for the
+       formatstring are the path and SHA1 of the submodule commit. Default
+       value: <module-link>
+
+repo.module-link.<path>::
+       Text which will be used as the formatstring for a hyperlink when a
+       submodule with the specified subdirectory path is printed in a
+       directory listing. The only argument for the formatstring is the SHA1
+       of the submodule commit. Default value: none.
+
 repo.max-stats::
        Override the default maximum statistics period. Valid values are equal
        to the values specified for the global "max-stats" setting. Default
 repo.max-stats::
        Override the default maximum statistics period. Valid values are equal
        to the values specified for the global "max-stats" setting. Default
@@ -458,38 +512,62 @@ config files, e.g. "repo.desc" becomes "desc".
 
 FILTER API
 ----------
 
 FILTER API
 ----------
-- about filter::
-  This filter is given no arguments.
-  The about text that is to be filtered is available on standard input and the
-  filtered text is expected on standard output.
-- commit filter::
-  This filter is given no arguments.
-  The commit message text that is to be filtered is available on standard input
-  and the filtered text is expected on standard output.
-- source filter::
-  This filter is given a single parameter: the filename of the source file to
-  filter. The filter can use the filename to determine (for example) the syntax
-  highlighting mode.
-  The contents of the source file that is to be filtered is available on
-  standard input and the filtered contents is expected on standard output.
+about filter::
+       This filter is given no arguments. The about text that is to be
+       filtered is available on standard input and the filtered text is
+       expected on standard output.
+
+commit filter::
+       This filter is given no arguments. The commit message text that is to
+       be filtered is available on standard input and the filtered text is
+       expected on standard output.
+
+source filter::
+       This filter is given a single parameter: the filename of the source
+       file to filter. The filter can use the filename to determine (for
+       example) the syntax highlighting mode. The contents of the source
+       file that is to be filtered is available on standard input and the
+       filtered contents is expected on standard output.
 
 Also, all filters are handed the following environment variables:
 
 Also, all filters are handed the following environment variables:
-- CGIT_REPO_URL        ( = repo.url       setting )
-- CGIT_REPO_NAME       ( = repo.name      setting )
-- CGIT_REPO_PATH       ( = repo.path      setting )
-- CGIT_REPO_OWNER      ( = repo.owner     setting )
-- CGIT_REPO_DEFBRANCH  ( = repo.defbranch setting )
-- CGIT_REPO_SECTION    ( = section        setting )
-- CGIT_REPO_CLONE_URL  ( = repo.clone-url setting )
+
+- CGIT_REPO_URL (from repo.url)
+- CGIT_REPO_NAME (from repo.name)
+- CGIT_REPO_PATH (from repo.path)
+- CGIT_REPO_OWNER (from repo.owner)
+- CGIT_REPO_DEFBRANCH (from repo.defbranch)
+- CGIT_REPO_SECTION (from repo.section)
+- CGIT_REPO_CLONE_URL (from repo.clone-url)
 
 If a setting is not defined for a repository and the corresponding global
 setting is also not defined (if applicable), then the corresponding
 
 If a setting is not defined for a repository and the corresponding global
 setting is also not defined (if applicable), then the corresponding
-environment variable will be an empty string.
+environment variable will be unset.
+
+
+MACRO EXPANSION
+---------------
+The following cgitrc options supports a simple macro expansion feature,
+where tokens prefixed with "$" are replaced with the value of a similary
+named environment variable:
+
+- cache-root
+- include
+- project-list
+- scan-path
+
+Macro expansion will also happen on the content of $CGIT_CONFIG, if
+defined.
+
+One usage of this feature is virtual hosting, which in its simplest form
+can be accomplished by adding the following line to /etc/cgitrc:
+
+       include=/etc/cgitrc.d/$HTTP_HOST
+
+The following options are expanded during request processing, and support
+the environment variables defined in "FILTER API":
 
 
-Note that under normal circumstance all these environment variables are
-defined. If however the total size of the defined settings exceed the
-allocated buffer within cgit then only the environment variables that fit
-in the allocated buffer are handed to the filter.
+- clone-url
+- repo.clone-url
 
 
 EXAMPLE CGITRC FILE
 
 
 EXAMPLE CGITRC FILE
@@ -500,8 +578,8 @@ EXAMPLE CGITRC FILE
 cache-size=1000
 
 
 cache-size=1000
 
 
-# Specify some default clone prefixes
-clone-prefix=git://example.com ssh://example.com/pub/git http://example.com/git
+# Specify some default clone urls using macro expansion
+clone-url=git://foo.org/$CGIT_REPO_URL git@foo.org:$CGIT_REPO_URL
 
 # Specify the css url
 css=/css/cgit.css
 
 # Specify the css url
 css=/css/cgit.css