cSvn-UI for SVN Repositories

cGit-UI – is a web interface for Subversion (SVN) Repositories. cSvn CGI script is writen in C and therefore it's fast enough

6 Commits   0 Branches   2 Tags
bfc1508d (kx 2023-03-24 03:55:33 +0300   1) 
bfc1508d (kx 2023-03-24 03:55:33 +0300   2) # [csvn-ui.rc(5) Config File](https://csvn.radix.pro/csvn-ui/trunk/doc/csvn-ui.rc.5.md)
bfc1508d (kx 2023-03-24 03:55:33 +0300   3) 
bfc1508d (kx 2023-03-24 03:55:33 +0300   4) **/etc/csvn-ui.rc** – **cSvn-ui** CGI Script configuration file describes the Subversion™
bfc1508d (kx 2023-03-24 03:55:33 +0300   5) repositories that should be displayed on the client side.
bfc1508d (kx 2023-03-24 03:55:33 +0300   6) 
bfc1508d (kx 2023-03-24 03:55:33 +0300   7) 
bfc1508d (kx 2023-03-24 03:55:33 +0300   8) ## Table of Contents
bfc1508d (kx 2023-03-24 03:55:33 +0300   9) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  10) * [File Format](#file-format)
bfc1508d (kx 2023-03-24 03:55:33 +0300  11)     * [Data Types](#data-types)
bfc1508d (kx 2023-03-24 03:55:33 +0300  12)     * [Reserved Variables](#reserved-variables)
bfc1508d (kx 2023-03-24 03:55:33 +0300  13)     * [Repository Declaration](#repository-declaration)
bfc1508d (kx 2023-03-24 03:55:33 +0300  14) * [Working Example](#working-example)
bfc1508d (kx 2023-03-24 03:55:33 +0300  15) * [See Also](#see-also)
bfc1508d (kx 2023-03-24 03:55:33 +0300  16) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  17) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  18) ## File Format
bfc1508d (kx 2023-03-24 03:55:33 +0300  19) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  20) **/etc/csvn-ui.rc** is a regular text file created by user to present Subversion repositories. This file
bfc1508d (kx 2023-03-24 03:55:33 +0300  21) reads by [**cscnd(8)**](https://csvn.radix.pro/cscm/trunk/doc/cscmd.8.md) daemon and converts to binary
bfc1508d (kx 2023-03-24 03:55:33 +0300  22) form for **cSvn-ui** CGI script. Binary format allows to minimize the time needed for complete HTTP
bfc1508d (kx 2023-03-24 03:55:33 +0300  23) responses.
bfc1508d (kx 2023-03-24 03:55:33 +0300  24) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  25) The configuration file consists of a set of variable or repository declarations also configuration
bfc1508d (kx 2023-03-24 03:55:33 +0300  26) file can contains section of repository descriptions. The C/C++ comments are available:
bfc1508d (kx 2023-03-24 03:55:33 +0300  27) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  28) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300  29) /****************************
bfc1508d (kx 2023-03-24 03:55:33 +0300  30)   Apache's SVN repositories:
bfc1508d (kx 2023-03-24 03:55:33 +0300  31)  */
bfc1508d (kx 2023-03-24 03:55:33 +0300  32) home-page = "https://svn.apache.org/";
bfc1508d (kx 2023-03-24 03:55:33 +0300  33) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  34) repo 'subversion' {
bfc1508d (kx 2023-03-24 03:55:33 +0300  35)   owner = "Apache";
bfc1508d (kx 2023-03-24 03:55:33 +0300  36)   description = "Source repository of the Subversion.";
bfc1508d (kx 2023-03-24 03:55:33 +0300  37)   checkout-prefix-readonly = 'https://svn.apache.org/repos/asf';
bfc1508d (kx 2023-03-24 03:55:33 +0300  38) }
bfc1508d (kx 2023-03-24 03:55:33 +0300  39) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  40) section "Other Repositories" {
bfc1508d (kx 2023-03-24 03:55:33 +0300  41)   repo 'other-repository' {
bfc1508d (kx 2023-03-24 03:55:33 +0300  42)     . . .
bfc1508d (kx 2023-03-24 03:55:33 +0300  43)   }
bfc1508d (kx 2023-03-24 03:55:33 +0300  44)   . . .
bfc1508d (kx 2023-03-24 03:55:33 +0300  45) }
bfc1508d (kx 2023-03-24 03:55:33 +0300  46) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300  47) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  48) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  49) ### Data Types
bfc1508d (kx 2023-03-24 03:55:33 +0300  50) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  51) Configuration file assumes three types of variables.
bfc1508d (kx 2023-03-24 03:55:33 +0300  52) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  53) > **int** – integer constants. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300  54) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  55) >> ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300  56) >> true = 1;
bfc1508d (kx 2023-03-24 03:55:33 +0300  57) >> ```
bfc1508d (kx 2023-03-24 03:55:33 +0300  58) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  59) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  60) > **string** – string constants. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300  61) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  62) >> ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300  63) >> name = "Apache Subversion";
bfc1508d (kx 2023-03-24 03:55:33 +0300  64) >> ```
bfc1508d (kx 2023-03-24 03:55:33 +0300  65) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  66) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  67) > **path** – path constants. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300  68) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  69) >> ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300  70) >> path = '/etc/csvn-ui.rc';
bfc1508d (kx 2023-03-24 03:55:33 +0300  71) >> ```
bfc1508d (kx 2023-03-24 03:55:33 +0300  72) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  73) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  74) ### Reserved Variables
bfc1508d (kx 2023-03-24 03:55:33 +0300  75) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  76) There is a set of variable names used by **cSvn-ui** CGI Script.
bfc1508d (kx 2023-03-24 03:55:33 +0300  77) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  78) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  79) #### svn-utc-offset
bfc1508d (kx 2023-03-24 03:55:33 +0300  80) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  81) The integer or string value of UTC offset on the SVN server where repositories are published.
bfc1508d (kx 2023-03-24 03:55:33 +0300  82) For example:
bfc1508d (kx 2023-03-24 03:55:33 +0300  83) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  84) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300  85) svn-utc-offset = +0300; /* Europe/Moscow time zone */
bfc1508d (kx 2023-03-24 03:55:33 +0300  86) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300  87) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  88) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  89) #### checkout-prefix-readonly
bfc1508d (kx 2023-03-24 03:55:33 +0300  90) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  91) The checkout prefix for readonly access to the repository. The value of this variable should
bfc1508d (kx 2023-03-24 03:55:33 +0300  92) has **path** type without leadinfg dir-separator. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300  93) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  94) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300  95) checkout-prefix-readonly = 'svn://example.com';
bfc1508d (kx 2023-03-24 03:55:33 +0300  96) checkout-prefix-readonly = 'https://svn.example.com/svn';
bfc1508d (kx 2023-03-24 03:55:33 +0300  97) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300  98) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  99) Please note that **svn** protocol works match quickly.
bfc1508d (kx 2023-03-24 03:55:33 +0300 100) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 101) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 102) #### checkout-prefix
bfc1508d (kx 2023-03-24 03:55:33 +0300 103) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 104) The checkout prefix for readwrite access to the repository. The value of this variable should
bfc1508d (kx 2023-03-24 03:55:33 +0300 105) has **path** type without leadinfg dir-separator. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 106) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 107) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 108) checkout-prefix = 'svn+ssh://svn@example.com';
bfc1508d (kx 2023-03-24 03:55:33 +0300 109) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 110) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 111) This means the access on behalf **svn** system user.
bfc1508d (kx 2023-03-24 03:55:33 +0300 112) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 113) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 114) #### branches
bfc1508d (kx 2023-03-24 03:55:33 +0300 115) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 116) The name of directory where branches is places. Default value is *'branches'*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 117) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 118) #### trunk
bfc1508d (kx 2023-03-24 03:55:33 +0300 119) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 120) The name of the *trunk* directory. Default value is *'trunks'*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 121) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 122) #### tags
bfc1508d (kx 2023-03-24 03:55:33 +0300 123) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 124) The name of directory where tags are saved. Default value is *'tags'*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 125) Example declarations of directory names:
bfc1508d (kx 2023-03-24 03:55:33 +0300 126) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 127) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 128) branches = 'branches';
bfc1508d (kx 2023-03-24 03:55:33 +0300 129) trunk    = 'trunk';
bfc1508d (kx 2023-03-24 03:55:33 +0300 130) tags     = 'tags';
bfc1508d (kx 2023-03-24 03:55:33 +0300 131) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 132) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 133) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 134) #### snapshots
bfc1508d (kx 2023-03-24 03:55:33 +0300 135) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 136) The extension of snapshot tarballs. Default value: *'tar.xz'*. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 137) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 138) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 139) snapshots = 'tar.xz';
bfc1508d (kx 2023-03-24 03:55:33 +0300 140) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 141) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 142) Currently snapshot variable is not used by **cSvn-ui** CGI Script.
bfc1508d (kx 2023-03-24 03:55:33 +0300 143) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 144) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 145) #### css
bfc1508d (kx 2023-03-24 03:55:33 +0300 146) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 147) The full name of the CSS style sheet relative to the directory where **cSvn-ui** CGI Sctipt is installed.
bfc1508d (kx 2023-03-24 03:55:33 +0300 148) Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 149) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 150) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 151) css = '/.csvn/css/csvn.css';
bfc1508d (kx 2023-03-24 03:55:33 +0300 152) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 153) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 154) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 155) #### logo
bfc1508d (kx 2023-03-24 03:55:33 +0300 156) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 157) Url which specifies the source of an image which will be used as a logo (i.e right banner)
bfc1508d (kx 2023-03-24 03:55:33 +0300 158) on **cSvn-ui** pages. Default value: *'/.csvn/pixmaps/csvn-banner-280x280.png'*. The path to the
bfc1508d (kx 2023-03-24 03:55:33 +0300 159) **logo** also should be set relative to the directory where **cSvn-ui** CGI Script is installed.
bfc1508d (kx 2023-03-24 03:55:33 +0300 160) Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 161) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 162) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 163) logo = '/.csvn/pixmaps/csvn-banner-280x280.png';
bfc1508d (kx 2023-03-24 03:55:33 +0300 164) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 165) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 166) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 167) #### logo-alt
bfc1508d (kx 2023-03-24 03:55:33 +0300 168) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 169) The string used in HTML as a 'alt' property of the right banner <img> tag.
bfc1508d (kx 2023-03-24 03:55:33 +0300 170) Default value: *"Example.org"*. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 171) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 172) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 173) logo-alt = "Example.org";
bfc1508d (kx 2023-03-24 03:55:33 +0300 174) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 175) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 176) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 177) #### logo-link
bfc1508d (kx 2023-03-24 03:55:33 +0300 178) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 179) The string used in HTML as a 'href' property of the right banner image link <a> tag.
bfc1508d (kx 2023-03-24 03:55:33 +0300 180) Default value: *"https://example.org"*. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 181) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 182) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 183) logo-link = "https://example.org";
bfc1508d (kx 2023-03-24 03:55:33 +0300 184) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 185) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 186) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 187) #### main-menu-logo
bfc1508d (kx 2023-03-24 03:55:33 +0300 188) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 189) Url which specifies the source of an image which will be used as a logo of the main menu item
bfc1508d (kx 2023-03-24 03:55:33 +0300 190) on **cSvn-ui** pages. Default value: *'/.csvn/pixmaps/logo/SVN-logo-white-744x744.svg'*. The path
bfc1508d (kx 2023-03-24 03:55:33 +0300 191) to the *main-menu-logo* also should be set relative to the directory where **cSvn-ui** CGI Script
bfc1508d (kx 2023-03-24 03:55:33 +0300 192) is installed. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 193) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 194) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 195) main-menu-logo = '/.csvn/pixmaps/logo/SVN-logo-white-744x744.svg';
bfc1508d (kx 2023-03-24 03:55:33 +0300 196) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 197) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 198) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 199) #### favicon-path
bfc1508d (kx 2023-03-24 03:55:33 +0300 200) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 201) The directory name of the *favicon.ico* file without leadind dir-separator.
bfc1508d (kx 2023-03-24 03:55:33 +0300 202) Default value: *'/.csvn/pixmaps/favicon'*. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 203) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 204) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 205) favicon-path = '/.csvn/pixmaps/favicon';
bfc1508d (kx 2023-03-24 03:55:33 +0300 206) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 207) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 208) This directory name used for finding additional images declared in the HTML **header** of all
bfc1508d (kx 2023-03-24 03:55:33 +0300 209) **cSvn-ui** pages.
bfc1508d (kx 2023-03-24 03:55:33 +0300 210) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 211) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 212) #### syntax-highlight-css
bfc1508d (kx 2023-03-24 03:55:33 +0300 213) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 214) The base name of the CSS style sheet file used for syntax highlighting.
bfc1508d (kx 2023-03-24 03:55:33 +0300 215) Default value: *'_csvn.css'*. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 216) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 217) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 218) syntax-highlight-css = '_csvn.css';
bfc1508d (kx 2023-03-24 03:55:33 +0300 219) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 220) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 221) **cSvn-ui** CGI Script uses [highlight.js](https://highlightjs.org/) installed into
bfc1508d (kx 2023-03-24 03:55:33 +0300 222) `/.csvn/.engines/highlight/${hljs-version}/{css,js}` directories where the default
bfc1508d (kx 2023-03-24 03:55:33 +0300 223) *_csvn.css* file is palced too.
bfc1508d (kx 2023-03-24 03:55:33 +0300 224) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 225) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 226) #### header
bfc1508d (kx 2023-03-24 03:55:33 +0300 227) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 228) The content of the file specified with this option will be included verbatim at the top of all pages.
bfc1508d (kx 2023-03-24 03:55:33 +0300 229) Default value: *'/.csvn/html/header.html'*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 230) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 231) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 232) #### footer
bfc1508d (kx 2023-03-24 03:55:33 +0300 233) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 234) The content of the file specified with this option will be included verbatim at the bottom of all pages.
bfc1508d (kx 2023-03-24 03:55:33 +0300 235) Default value: *'/.csvn/html/footer.html'*. Examle of the **header** and the **footer** declarations:
bfc1508d (kx 2023-03-24 03:55:33 +0300 236) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 237) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 238) header = '/.csvn/html/header.html';
bfc1508d (kx 2023-03-24 03:55:33 +0300 239) footer = '/.csvn/html/footer.html';
bfc1508d (kx 2023-03-24 03:55:33 +0300 240) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 241) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 242) The **header** and the **footer** files used as template where **cSvn-ui** CGI Script substitute
bfc1508d (kx 2023-03-24 03:55:33 +0300 243) placeholders such as `${variable-name}` by their values. For example the `${css}` placeholder
bfc1508d (kx 2023-03-24 03:55:33 +0300 244) will be replaced by the value of **css** variable declared in the **/etc/csvn-ui.rc** config file.
bfc1508d (kx 2023-03-24 03:55:33 +0300 245) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 246) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 247) #### page-size
bfc1508d (kx 2023-03-24 03:55:33 +0300 248) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 249) The **string** or **int** variable which set the length of the repositories list or logs that shown
bfc1508d (kx 2023-03-24 03:55:33 +0300 250) in one page by the **cSvn-ui** CGI Script. Default value: 200. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 251) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 252) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 253) page-size = 50; /* 10 ... 200 may be string or integer. Default value is page-size = 200 */
bfc1508d (kx 2023-03-24 03:55:33 +0300 254) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 255) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 256) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 257) #### owner
bfc1508d (kx 2023-03-24 03:55:33 +0300 258) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 259) The **string** variable used in the HTML header of all **cSvn-ui** pages and also in the *Owner* colon
bfc1508d (kx 2023-03-24 03:55:33 +0300 260) of the repository list. Default value: *"Andrey V.Kosteltsev"*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 261) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 262) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 263) #### author
bfc1508d (kx 2023-03-24 03:55:33 +0300 264) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 265) The **string** variable used in the HTML header of all **cSvn-ui** pages. Default value: *"Andrey V.Kosteltsev"*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 266) Example declarations of the **owner** and the **author** variables:
bfc1508d (kx 2023-03-24 03:55:33 +0300 267) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 268) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 269) owner  = "John Smith";
bfc1508d (kx 2023-03-24 03:55:33 +0300 270) author = "John Smith";
bfc1508d (kx 2023-03-24 03:55:33 +0300 271) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 272) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 273) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 274) #### title
bfc1508d (kx 2023-03-24 03:55:33 +0300 275) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 276) The **string** variable used in the HTML header of all **cSvn-ui** pages as a page title.
bfc1508d (kx 2023-03-24 03:55:33 +0300 277) Default value: *"SVN Repositories"*. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 278) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 279) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 280) title  = "Example.org SVN Repositories";
bfc1508d (kx 2023-03-24 03:55:33 +0300 281) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 282) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 283) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 284) #### description
bfc1508d (kx 2023-03-24 03:55:33 +0300 285) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 286) The **string** variable used in the HTML header of all **cSvn-ui** pages as a page description.
bfc1508d (kx 2023-03-24 03:55:33 +0300 287) Default value: *"Subversion repositories hosted at Solar System, Earth"*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 288) Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 289) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 290) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 291) description  = "Subversion repositories hosted at example.org (St.-Petersburg)";
bfc1508d (kx 2023-03-24 03:55:33 +0300 292) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 293) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 294) For a long description the value of this **string** variable can be splitted in the C-style
bfc1508d (kx 2023-03-24 03:55:33 +0300 295) by following way:
bfc1508d (kx 2023-03-24 03:55:33 +0300 296) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 297) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 298) description  = "Subversion repositories"
bfc1508d (kx 2023-03-24 03:55:33 +0300 299)                " hosted at example.org "
bfc1508d (kx 2023-03-24 03:55:33 +0300 300)                "(St.-Petersburg)";
bfc1508d (kx 2023-03-24 03:55:33 +0300 301) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 302) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 303) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 304) #### keywords
bfc1508d (kx 2023-03-24 03:55:33 +0300 305) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 306) The **string** variable contains space separated keywords used in the HTML header of all **cSvn-ui**
bfc1508d (kx 2023-03-24 03:55:33 +0300 307) pages as a page keywords. Default value: *"cSvn repositories"*. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 308) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 309) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 310) keywords = "cSvn-ui cSvn UI CGI Subversion Repositories scm SVN";
bfc1508d (kx 2023-03-24 03:55:33 +0300 311) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 312) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 313) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 314) #### copyright-notice
bfc1508d (kx 2023-03-24 03:55:33 +0300 315) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 316) The **string** variable used in the HTML footer of all **cSvn-ui** pages as a *Copyright Notice*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 317) Default value: *"By using any website materials you agree to indicate source."*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 318) Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 319) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 320) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 321) copyright-notice = "By using any materials you agree with ...";
bfc1508d (kx 2023-03-24 03:55:33 +0300 322) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 323) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 324) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 325) #### copyright
bfc1508d (kx 2023-03-24 03:55:33 +0300 326) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 327) The **string** variable used in the HTML footer of all **cSvn-ui** pages as a *Copyright*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 328) Default value: *"© 2020 Andrey V.Kosteltsev. All Rights Reserved."*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 329) Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 330) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 331) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 332) copyright = "© John Smith (explorer), 1580 - 1631.";
bfc1508d (kx 2023-03-24 03:55:33 +0300 333) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 334) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 335) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 336) #### home-page
bfc1508d (kx 2023-03-24 03:55:33 +0300 337) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 338) The URL of the home page of the project. Default value: *"https://example.org"*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 339) Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 340) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 341) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 342) home-page = "https://main-site-of-the-project.org";
bfc1508d (kx 2023-03-24 03:55:33 +0300 343) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 344) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 345) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 346) ### Analytics variables:
bfc1508d (kx 2023-03-24 03:55:33 +0300 347) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 348) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 349) #### analytic-links
bfc1508d (kx 2023-03-24 03:55:33 +0300 350) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 351) The path to the file which contains meta tags with site ownership verificaton codes for engines such as *Google Search Console* or
bfc1508d (kx 2023-03-24 03:55:33 +0300 352) *Yandex Webmaster*. **cSvn-ui** CGI Script reads the file **analytic-links** in RAW format and includes it into <HEAD> tag of each HTML page.
bfc1508d (kx 2023-03-24 03:55:33 +0300 353) Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 354) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 355) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 356) analytic-links = '/analytics/links';
bfc1508d (kx 2023-03-24 03:55:33 +0300 357) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 358) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 359) Where the file */analytics/links* may contains HTML tags like follow:
bfc1508d (kx 2023-03-24 03:55:33 +0300 360) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 361) ```html
bfc1508d (kx 2023-03-24 03:55:33 +0300 362) <meta name="google-site-verification" content="..." />
bfc1508d (kx 2023-03-24 03:55:33 +0300 363) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 364) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 365) The file name should be defined relative of the path where **cSvn-ui** CGI Script is installed. For example, if **cSvn-ui** CGI Script installed
bfc1508d (kx 2023-03-24 03:55:33 +0300 366) into */srv/www/htdocs/csvn* directory and file name declared as */analytics/links* then **cSvn-ui** CGI Script will try to read the
bfc1508d (kx 2023-03-24 03:55:33 +0300 367) file */srv/www/htdocs/csvn/analytics/links*.
bfc1508d (kx 2023-03-24 03:55:33 +0300 368) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 369) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 370) #### analytic-scripts
bfc1508d (kx 2023-03-24 03:55:33 +0300 371) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 372) The path to the file which contains *JavaScripts* for engines such as *Google Search Console* or
bfc1508d (kx 2023-03-24 03:55:33 +0300 373) *Yandex Webmaster*. **cSvn-ui** CGI Script reads the file **analytic-scripts** in RAW format and includes it at the end of &lt;HEAD&gt; tag before
bfc1508d (kx 2023-03-24 03:55:33 +0300 374) &lt;/HEAD&gt; entry of each HTML page. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 375) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 376) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 377) analytic-scripts = '/analytics/scripts';
bfc1508d (kx 2023-03-24 03:55:33 +0300 378) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 379) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 380) Where the file */analytics/scripts* may contains code like follow:
bfc1508d (kx 2023-03-24 03:55:33 +0300 381) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 382) ```html
bfc1508d (kx 2023-03-24 03:55:33 +0300 383) <!-- Global site tag (gtag.js) - Google Analytics -->
bfc1508d (kx 2023-03-24 03:55:33 +0300 384) <script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
bfc1508d (kx 2023-03-24 03:55:33 +0300 385) <script>
bfc1508d (kx 2023-03-24 03:55:33 +0300 386)   window.dataLayer = window.dataLayer || [];
bfc1508d (kx 2023-03-24 03:55:33 +0300 387)   function gtag(){dataLayer.push(arguments);}
bfc1508d (kx 2023-03-24 03:55:33 +0300 388)   gtag('js', new Date());
bfc1508d (kx 2023-03-24 03:55:33 +0300 389) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 390)   gtag('config', 'G-XXXXXXXXXX');
bfc1508d (kx 2023-03-24 03:55:33 +0300 391) </script>
bfc1508d (kx 2023-03-24 03:55:33 +0300 392) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 393) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 394) Please note that the *&lt;script&gt;* tags should be present in the */analytics/scripts* because **cSvn-ui** CGI Script reads this file
bfc1508d (kx 2023-03-24 03:55:33 +0300 395) in RAW format and includes it as is.
bfc1508d (kx 2023-03-24 03:55:33 +0300 396) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 397) The variables **analytic-links** and **analytic-scripts** should be declared on the global level of the **/etc/csvn-ui.rc**
bfc1508d (kx 2023-03-24 03:55:33 +0300 398) configuration file and cannot be overriden in a repository declaration.
bfc1508d (kx 2023-03-24 03:55:33 +0300 399) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 400) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 401) ### Donation variables:
bfc1508d (kx 2023-03-24 03:55:33 +0300 402) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 403) The **cSvn-ui** CGI Script provides the ability to create a custom donation dialogue. To do this, you need to create a set of three files:
bfc1508d (kx 2023-03-24 03:55:33 +0300 404) **CSS**, **HTML**, and **JavaScript** file for automation. You can add a donation dialogue for each repository separately, as well as for the
bfc1508d (kx 2023-03-24 03:55:33 +0300 405) entire list of repositories. To enable donation dialogue you have to set the value of **donate** variable to **donate = 1**:
bfc1508d (kx 2023-03-24 03:55:33 +0300 406) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 407) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 408) #### donate
bfc1508d (kx 2023-03-24 03:55:33 +0300 409) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 410) The integer variable used to enable or disable donation dialogue. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 411) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 412) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 413) donate = 1;
bfc1508d (kx 2023-03-24 03:55:33 +0300 414) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 415) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 416) #### donate-css
bfc1508d (kx 2023-03-24 03:55:33 +0300 417) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 418) The name of file contains the stylesheet for donation modal dialogue. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 419) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 420) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 421) donate-css = '/donations/donate.css';
bfc1508d (kx 2023-03-24 03:55:33 +0300 422) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 423) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 424) #### donate-html
bfc1508d (kx 2023-03-24 03:55:33 +0300 425) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 426) The name of file contains the HTML code of donation modal dialogue. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 427) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 428) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 429) donate-html = '/donations/donate.html';
bfc1508d (kx 2023-03-24 03:55:33 +0300 430) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 431) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 432) #### donate-js
bfc1508d (kx 2023-03-24 03:55:33 +0300 433) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 434) The name of file contains the javascript code for donation modal dialogue automation. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 435) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 436) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 437) donate-js = '/donations/donate.js';
bfc1508d (kx 2023-03-24 03:55:33 +0300 438) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 439) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 440) **cSvn-ui** CGI Script includes these files at end of &lt;BODY&gt; tag just before the closing &lt;/BODY&gt; tag. Unlike the others,
bfc1508d (kx 2023-03-24 03:55:33 +0300 441) the **donate-html** file should be no more than 8192 bytes in size due to the fact that this file is a template
bfc1508d (kx 2023-03-24 03:55:33 +0300 442) and the values of the following two variables are substituted into its body using placeholders *${donate-header}*
bfc1508d (kx 2023-03-24 03:55:33 +0300 443) and *${donate-purpose}*:
bfc1508d (kx 2023-03-24 03:55:33 +0300 444) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 445) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 446) #### donate-header
bfc1508d (kx 2023-03-24 03:55:33 +0300 447) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 448) The title of the donation modal dialogue defined in the **donate-html** file. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 449) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 450) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 451) donate-header = "Donations";
bfc1508d (kx 2023-03-24 03:55:33 +0300 452) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 453) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 454) #### donate-purpose
bfc1508d (kx 2023-03-24 03:55:33 +0300 455) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 456) The donation purpose used as value of &lt;input value="..."&gt; tag property in payment form of systems such as **PayPal** or **Yandex.Money**.
bfc1508d (kx 2023-03-24 03:55:33 +0300 457) Also this value can be used as a header of modal dialogue content. Example declaration:
bfc1508d (kx 2023-03-24 03:55:33 +0300 458) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 459) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 460) donate-purpose = "Support for our projects";
bfc1508d (kx 2023-03-24 03:55:33 +0300 461) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 462) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 463) Donation dialogue can be defined for each repository separately or defined on global level. In the last case
bfc1508d (kx 2023-03-24 03:55:33 +0300 464) the dialogue header and payment purpose may be overriden in the body of a repository declaration like follow:
bfc1508d (kx 2023-03-24 03:55:33 +0300 465) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 466) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 467) true  = 1;
bfc1508d (kx 2023-03-24 03:55:33 +0300 468) false = 0;
bfc1508d (kx 2023-03-24 03:55:33 +0300 469) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 470) donate         = true;
bfc1508d (kx 2023-03-24 03:55:33 +0300 471) donate-css     = '/donations/donate.css';
bfc1508d (kx 2023-03-24 03:55:33 +0300 472) donate-html    = '/donations/donate.html';
bfc1508d (kx 2023-03-24 03:55:33 +0300 473) donate-js      = '/donations/donate.js';
bfc1508d (kx 2023-03-24 03:55:33 +0300 474) donate-header  = "Donation";
bfc1508d (kx 2023-03-24 03:55:33 +0300 475) donate-purpose = "Support our activities";
bfc1508d (kx 2023-03-24 03:55:33 +0300 476) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 477) section "Tools" {
bfc1508d (kx 2023-03-24 03:55:33 +0300 478)   repo 'repo-path' {
bfc1508d (kx 2023-03-24 03:55:33 +0300 479)     . . .
bfc1508d (kx 2023-03-24 03:55:33 +0300 480)     donate-header  = "Project Donation";
bfc1508d (kx 2023-03-24 03:55:33 +0300 481)     donate-purpose = "Support our Project";
bfc1508d (kx 2023-03-24 03:55:33 +0300 482)     . . .
bfc1508d (kx 2023-03-24 03:55:33 +0300 483)   }
bfc1508d (kx 2023-03-24 03:55:33 +0300 484) }
bfc1508d (kx 2023-03-24 03:55:33 +0300 485) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 486) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 487) To show the modal dialogue in javascript code **donate-js** the selector **'a.donate'** should be used. For examle, like this:
bfc1508d (kx 2023-03-24 03:55:33 +0300 488) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 489) ```php
bfc1508d (kx 2023-03-24 03:55:33 +0300 490) var show = document.querySelector( "a.donate" );
bfc1508d (kx 2023-03-24 03:55:33 +0300 491) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 492) /**************
bfc1508d (kx 2023-03-24 03:55:33 +0300 493)   Open Dialog:
bfc1508d (kx 2023-03-24 03:55:33 +0300 494)  */
bfc1508d (kx 2023-03-24 03:55:33 +0300 495) show.onclick = function() {
bfc1508d (kx 2023-03-24 03:55:33 +0300 496)   dialog.style.display = "block";
bfc1508d (kx 2023-03-24 03:55:33 +0300 497) }
bfc1508d (kx 2023-03-24 03:55:33 +0300 498) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 499) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 500) Where the variable *dialog* points to modal dialogue defined in the **donate-html** file.
bfc1508d (kx 2023-03-24 03:55:33 +0300 501) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 502) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 503) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 504) ### Repository Declaration
bfc1508d (kx 2023-03-24 03:55:33 +0300 505) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 506) The **/etc/csvn-ui.rc** config file should contains at least one repository declaration to be shown
bfc1508d (kx 2023-03-24 03:55:33 +0300 507) by the **cSvn-ui** CGI Script. When all expected variables declared in the global section
bfc1508d (kx 2023-03-24 03:55:33 +0300 508) the config file the repository declaration can be very simple:
bfc1508d (kx 2023-03-24 03:55:33 +0300 509) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 510) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 511) repo 'tools' {
bfc1508d (kx 2023-03-24 03:55:33 +0300 512)   owner = "John Smith";
bfc1508d (kx 2023-03-24 03:55:33 +0300 513)   description = "John Smith's tools source code repository.";
bfc1508d (kx 2023-03-24 03:55:33 +0300 514) }
bfc1508d (kx 2023-03-24 03:55:33 +0300 515) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 516) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 517) The list of repositories can be splitted in several sections. The section has a name and can
bfc1508d (kx 2023-03-24 03:55:33 +0300 518) contains repository declarations only.
bfc1508d (kx 2023-03-24 03:55:33 +0300 519) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 520) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 521) section "John Smith sources" {
bfc1508d (kx 2023-03-24 03:55:33 +0300 522)   repo 'tools' {
bfc1508d (kx 2023-03-24 03:55:33 +0300 523)     owner = "John Smith";
bfc1508d (kx 2023-03-24 03:55:33 +0300 524)     description = "John Smith's tools source code repository.";
bfc1508d (kx 2023-03-24 03:55:33 +0300 525)   }
bfc1508d (kx 2023-03-24 03:55:33 +0300 526)   repo 'examples' {
bfc1508d (kx 2023-03-24 03:55:33 +0300 527)     owner = "John Smith";
bfc1508d (kx 2023-03-24 03:55:33 +0300 528)     description = "John Smith's examples source code.";
bfc1508d (kx 2023-03-24 03:55:33 +0300 529)   }
bfc1508d (kx 2023-03-24 03:55:33 +0300 530) }
bfc1508d (kx 2023-03-24 03:55:33 +0300 531) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 532) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 533) Please note, repositories, unlike sections, do not have a name, but have a **path** to repository.
bfc1508d (kx 2023-03-24 03:55:33 +0300 534) So if your repositories in the file system are stored in the `/var/scm/svn` directory, and the
bfc1508d (kx 2023-03-24 03:55:33 +0300 535) `tools` repository is located in the `/var/scm/svn/tools` directory, then the path to the repository
bfc1508d (kx 2023-03-24 03:55:33 +0300 536) is set relative to the `/var/scm/svn` directory as follows:
bfc1508d (kx 2023-03-24 03:55:33 +0300 537) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 538) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 539) repo 'tools' {
bfc1508d (kx 2023-03-24 03:55:33 +0300 540)   owner = "John Smith";
bfc1508d (kx 2023-03-24 03:55:33 +0300 541)   description = "John Smith's tools source code repository.";
bfc1508d (kx 2023-03-24 03:55:33 +0300 542) }
bfc1508d (kx 2023-03-24 03:55:33 +0300 543) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 544) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 545) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 546) ## Working Example
bfc1508d (kx 2023-03-24 03:55:33 +0300 547) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 548) As an example, we will give a working configuration file in which the **cSvn-ui** repository is presented.
bfc1508d (kx 2023-03-24 03:55:33 +0300 549) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 550) ```dts
bfc1508d (kx 2023-03-24 03:55:33 +0300 551) svn-utc-offset = +0300;
bfc1508d (kx 2023-03-24 03:55:33 +0300 552) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 553) checkout-prefix-readonly = 'svn://radix.pro';
bfc1508d (kx 2023-03-24 03:55:33 +0300 554) checkout-prefix          = 'svn+ssh://svn@radix.pro';
bfc1508d (kx 2023-03-24 03:55:33 +0300 555) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 556) branches = 'branches';
bfc1508d (kx 2023-03-24 03:55:33 +0300 557) trunk    = 'trunk';
bfc1508d (kx 2023-03-24 03:55:33 +0300 558) tags     = 'tags';
bfc1508d (kx 2023-03-24 03:55:33 +0300 559) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 560) snapshots = 'tar.xz';
bfc1508d (kx 2023-03-24 03:55:33 +0300 561) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 562) css = '/.csvn/css/csvn.css';
bfc1508d (kx 2023-03-24 03:55:33 +0300 563) logo = '/.csvn/pixmaps/csvn-banner-280x280.png';
bfc1508d (kx 2023-03-24 03:55:33 +0300 564) logo-alt = "Radix.pro";
bfc1508d (kx 2023-03-24 03:55:33 +0300 565) logo-link = "https://radix.pro";
bfc1508d (kx 2023-03-24 03:55:33 +0300 566) main-menu-logo = '/.csvn/pixmaps/logo/SVN-logo-white-744x744.svg';
bfc1508d (kx 2023-03-24 03:55:33 +0300 567) favicon-path = '/.csvn/pixmaps/favicon';
bfc1508d (kx 2023-03-24 03:55:33 +0300 568) syntax-highlight-css = '_csvn.css';
bfc1508d (kx 2023-03-24 03:55:33 +0300 569) header = '/.csvn/html/header.html';
bfc1508d (kx 2023-03-24 03:55:33 +0300 570) footer = '/.csvn/html/footer.html';
bfc1508d (kx 2023-03-24 03:55:33 +0300 571) page-size = 200;
bfc1508d (kx 2023-03-24 03:55:33 +0300 572) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 573) owner = "Andrey V.Kosteltsev";
bfc1508d (kx 2023-03-24 03:55:33 +0300 574) author = "Andrey V.Kosteltsev";
bfc1508d (kx 2023-03-24 03:55:33 +0300 575) title = "Radix.pro SVN Repositories";
bfc1508d (kx 2023-03-24 03:55:33 +0300 576) description = "Subversion repositories hosted at radix.pro (St.-Petersburg)";
bfc1508d (kx 2023-03-24 03:55:33 +0300 577) keywords = "cSvn repositories";
bfc1508d (kx 2023-03-24 03:55:33 +0300 578) copyright = "&#169; Andrey V. Kosteltsev, 2019 &#8211; 2020.";
bfc1508d (kx 2023-03-24 03:55:33 +0300 579) copyright-notice = "Where any material of this site is being reproduced, published or issued to others the reference to the source is obligatory.";
bfc1508d (kx 2023-03-24 03:55:33 +0300 580) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 581) home-page = "https://radix.pro/";
bfc1508d (kx 2023-03-24 03:55:33 +0300 582) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 583) section "Tools" {
bfc1508d (kx 2023-03-24 03:55:33 +0300 584)   repo 'csvn-ui' {
bfc1508d (kx 2023-03-24 03:55:33 +0300 585)     owner = "Andrey V.Kosteltsev";
bfc1508d (kx 2023-03-24 03:55:33 +0300 586)     title = "cSvn-ui for SVN Repositories";
bfc1508d (kx 2023-03-24 03:55:33 +0300 587)     description = "cSvn-ui &#8211; is a web interface for Subversion&#8482; Repositories written in C";
bfc1508d (kx 2023-03-24 03:55:33 +0300 588)     home-page = "https://radix.pro/";
bfc1508d (kx 2023-03-24 03:55:33 +0300 589)   }
bfc1508d (kx 2023-03-24 03:55:33 +0300 590) }
bfc1508d (kx 2023-03-24 03:55:33 +0300 591) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 592) ```
bfc1508d (kx 2023-03-24 03:55:33 +0300 593) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 594) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 595) ## See Also
bfc1508d (kx 2023-03-24 03:55:33 +0300 596) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 597) > [**README**](https://csvn.radix.pro/csvn/trunk/README.md),
bfc1508d (kx 2023-03-24 03:55:33 +0300 598) > [**cscmd(8)**](https://csvn.radix.pro/cscm/trunk/doc/cscmd.8.md)
bfc1508d (kx 2023-03-24 03:55:33 +0300 599)