summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--cgit.c2
-rw-r--r--cgit.h1
-rw-r--r--cgitrc.5.txt4
-rw-r--r--ui-shared.c2
4 files changed, 9 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 608cab6..64d95f9 100644
--- a/cgit.c
+++ b/cgit.c
@@ -10,48 +10,50 @@
10#include "cache.h" 10#include "cache.h"
11#include "cmd.h" 11#include "cmd.h"
12#include "configfile.h" 12#include "configfile.h"
13#include "html.h" 13#include "html.h"
14#include "ui-shared.h" 14#include "ui-shared.h"
15#include "ui-stats.h" 15#include "ui-stats.h"
16#include "scan-tree.h" 16#include "scan-tree.h"
17 17
18const char *cgit_version = CGIT_VERSION; 18const char *cgit_version = CGIT_VERSION;
19 19
20void config_cb(const char *name, const char *value) 20void config_cb(const char *name, const char *value)
21{ 21{
22 if (!strcmp(name, "root-title")) 22 if (!strcmp(name, "root-title"))
23 ctx.cfg.root_title = xstrdup(value); 23 ctx.cfg.root_title = xstrdup(value);
24 else if (!strcmp(name, "root-desc")) 24 else if (!strcmp(name, "root-desc"))
25 ctx.cfg.root_desc = xstrdup(value); 25 ctx.cfg.root_desc = xstrdup(value);
26 else if (!strcmp(name, "root-readme")) 26 else if (!strcmp(name, "root-readme"))
27 ctx.cfg.root_readme = xstrdup(value); 27 ctx.cfg.root_readme = xstrdup(value);
28 else if (!strcmp(name, "css")) 28 else if (!strcmp(name, "css"))
29 ctx.cfg.css = xstrdup(value); 29 ctx.cfg.css = xstrdup(value);
30 else if (!strcmp(name, "favicon")) 30 else if (!strcmp(name, "favicon"))
31 ctx.cfg.favicon = xstrdup(value); 31 ctx.cfg.favicon = xstrdup(value);
32 else if (!strcmp(name, "footer")) 32 else if (!strcmp(name, "footer"))
33 ctx.cfg.footer = xstrdup(value); 33 ctx.cfg.footer = xstrdup(value);
34 else if (!strcmp(name, "header"))
35 ctx.cfg.header = xstrdup(value);
34 else if (!strcmp(name, "logo")) 36 else if (!strcmp(name, "logo"))
35 ctx.cfg.logo = xstrdup(value); 37 ctx.cfg.logo = xstrdup(value);
36 else if (!strcmp(name, "index-header")) 38 else if (!strcmp(name, "index-header"))
37 ctx.cfg.index_header = xstrdup(value); 39 ctx.cfg.index_header = xstrdup(value);
38 else if (!strcmp(name, "index-info")) 40 else if (!strcmp(name, "index-info"))
39 ctx.cfg.index_info = xstrdup(value); 41 ctx.cfg.index_info = xstrdup(value);
40 else if (!strcmp(name, "logo-link")) 42 else if (!strcmp(name, "logo-link"))
41 ctx.cfg.logo_link = xstrdup(value); 43 ctx.cfg.logo_link = xstrdup(value);
42 else if (!strcmp(name, "module-link")) 44 else if (!strcmp(name, "module-link"))
43 ctx.cfg.module_link = xstrdup(value); 45 ctx.cfg.module_link = xstrdup(value);
44 else if (!strcmp(name, "virtual-root")) { 46 else if (!strcmp(name, "virtual-root")) {
45 ctx.cfg.virtual_root = trim_end(value, '/'); 47 ctx.cfg.virtual_root = trim_end(value, '/');
46 if (!ctx.cfg.virtual_root && (!strcmp(value, "/"))) 48 if (!ctx.cfg.virtual_root && (!strcmp(value, "/")))
47 ctx.cfg.virtual_root = ""; 49 ctx.cfg.virtual_root = "";
48 } else if (!strcmp(name, "nocache")) 50 } else if (!strcmp(name, "nocache"))
49 ctx.cfg.nocache = atoi(value); 51 ctx.cfg.nocache = atoi(value);
50 else if (!strcmp(name, "snapshots")) 52 else if (!strcmp(name, "snapshots"))
51 ctx.cfg.snapshots = cgit_parse_snapshots_mask(value); 53 ctx.cfg.snapshots = cgit_parse_snapshots_mask(value);
52 else if (!strcmp(name, "enable-index-links")) 54 else if (!strcmp(name, "enable-index-links"))
53 ctx.cfg.enable_index_links = atoi(value); 55 ctx.cfg.enable_index_links = atoi(value);
54 else if (!strcmp(name, "enable-log-filecount")) 56 else if (!strcmp(name, "enable-log-filecount"))
55 ctx.cfg.enable_log_filecount = atoi(value); 57 ctx.cfg.enable_log_filecount = atoi(value);
56 else if (!strcmp(name, "enable-log-linecount")) 58 else if (!strcmp(name, "enable-log-linecount"))
57 ctx.cfg.enable_log_linecount = atoi(value); 59 ctx.cfg.enable_log_linecount = atoi(value);
diff --git a/cgit.h b/cgit.h
index 4fe94c6..4942b96 100644
--- a/cgit.h
+++ b/cgit.h
@@ -114,48 +114,49 @@ struct cgit_query {
114 char *page; 114 char *page;
115 char *search; 115 char *search;
116 char *grep; 116 char *grep;
117 char *head; 117 char *head;
118 char *sha1; 118 char *sha1;
119 char *sha2; 119 char *sha2;
120 char *path; 120 char *path;
121 char *name; 121 char *name;
122 char *mimetype; 122 char *mimetype;
123 char *url; 123 char *url;
124 char *period; 124 char *period;
125 int ofs; 125 int ofs;
126 int nohead; 126 int nohead;
127 char *sort; 127 char *sort;
128 int showmsg; 128 int showmsg;
129}; 129};
130 130
131struct cgit_config { 131struct cgit_config {
132 char *agefile; 132 char *agefile;
133 char *cache_root; 133 char *cache_root;
134 char *clone_prefix; 134 char *clone_prefix;
135 char *css; 135 char *css;
136 char *favicon; 136 char *favicon;
137 char *footer; 137 char *footer;
138 char *header;
138 char *index_header; 139 char *index_header;
139 char *index_info; 140 char *index_info;
140 char *logo; 141 char *logo;
141 char *logo_link; 142 char *logo_link;
142 char *module_link; 143 char *module_link;
143 char *repo_group; 144 char *repo_group;
144 char *robots; 145 char *robots;
145 char *root_title; 146 char *root_title;
146 char *root_desc; 147 char *root_desc;
147 char *root_readme; 148 char *root_readme;
148 char *script_name; 149 char *script_name;
149 char *virtual_root; 150 char *virtual_root;
150 int cache_size; 151 int cache_size;
151 int cache_dynamic_ttl; 152 int cache_dynamic_ttl;
152 int cache_max_create_time; 153 int cache_max_create_time;
153 int cache_repo_ttl; 154 int cache_repo_ttl;
154 int cache_root_ttl; 155 int cache_root_ttl;
155 int cache_static_ttl; 156 int cache_static_ttl;
156 int enable_index_links; 157 int enable_index_links;
157 int enable_log_filecount; 158 int enable_log_filecount;
158 int enable_log_linecount; 159 int enable_log_linecount;
159 int local_time; 160 int local_time;
160 int max_repo_count; 161 int max_repo_count;
161 int max_commit_count; 162 int max_commit_count;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 09f56a6..fd299ae 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -63,48 +63,52 @@ enable-index-links
63 Flag which, when set to "1", will make cgit generate extra links for 63 Flag which, when set to "1", will make cgit generate extra links for
64 each repo in the repository index (specifically, to the "summary", 64 each repo in the repository index (specifically, to the "summary",
65 "commit" and "tree" pages). Default value: "0". 65 "commit" and "tree" pages). Default value: "0".
66 66
67enable-log-filecount 67enable-log-filecount
68 Flag which, when set to "1", will make cgit print the number of 68 Flag which, when set to "1", will make cgit print the number of
69 modified files for each commit on the repository log page. Default 69 modified files for each commit on the repository log page. Default
70 value: "0". 70 value: "0".
71 71
72enable-log-linecount 72enable-log-linecount
73 Flag which, when set to "1", will make cgit print the number of added 73 Flag which, when set to "1", will make cgit print the number of added
74 and removed lines for each commit on the repository log page. Default 74 and removed lines for each commit on the repository log page. Default
75 value: "0". 75 value: "0".
76 76
77favicon 77favicon
78 Url used as link to a shortcut icon for cgit. If specified, it is 78 Url used as link to a shortcut icon for cgit. If specified, it is
79 suggested to use the value "/favicon.ico" since certain browsers will 79 suggested to use the value "/favicon.ico" since certain browsers will
80 ignore other values. Default value: none. 80 ignore other values. Default value: none.
81 81
82footer 82footer
83 The content of the file specified with this option will be included 83 The content of the file specified with this option will be included
84 verbatim at the bottom of all pages (i.e. it replaces the standard 84 verbatim at the bottom of all pages (i.e. it replaces the standard
85 "generated by..." message. Default value: none. 85 "generated by..." message. Default value: none.
86 86
87header
88 The content of the file specified with this option will be included
89 verbatim at the top of all pages. Default value: none.
90
87include 91include
88 Name of a configfile to include before the rest of the current config- 92 Name of a configfile to include before the rest of the current config-
89 file is parsed. Default value: none. 93 file is parsed. Default value: none.
90 94
91index-header 95index-header
92 The content of the file specified with this option will be included 96 The content of the file specified with this option will be included
93 verbatim above the repository index. This setting is deprecated, and 97 verbatim above the repository index. This setting is deprecated, and
94 will not be supported by cgit-1.0 (use root-readme instead). Default 98 will not be supported by cgit-1.0 (use root-readme instead). Default
95 value: none. 99 value: none.
96 100
97index-info 101index-info
98 The content of the file specified with this option will be included 102 The content of the file specified with this option will be included
99 verbatim below the heading on the repository index page. This setting 103 verbatim below the heading on the repository index page. This setting
100 is deprecated, and will not be supported by cgit-1.0 (use root-desc 104 is deprecated, and will not be supported by cgit-1.0 (use root-desc
101 instead). Default value: none. 105 instead). Default value: none.
102 106
103local-time 107local-time
104 Flag which, if set to "1", makes cgit print commit and tag times in the 108 Flag which, if set to "1", makes cgit print commit and tag times in the
105 servers timezone. Default value: "0". 109 servers timezone. Default value: "0".
106 110
107logo 111logo
108 Url which specifies the source of an image which will be used as a logo 112 Url which specifies the source of an image which will be used as a logo
109 on all cgit pages. 113 on all cgit pages.
110 114
diff --git a/ui-shared.c b/ui-shared.c
index 4f28512..de77bbf 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -479,48 +479,50 @@ void cgit_print_docstart(struct cgit_context *ctx)
479 html("<head>\n"); 479 html("<head>\n");
480 html("<title>"); 480 html("<title>");
481 html_txt(ctx->page.title); 481 html_txt(ctx->page.title);
482 html("</title>\n"); 482 html("</title>\n");
483 htmlf("<meta name='generator' content='cgit %s'/>\n", cgit_version); 483 htmlf("<meta name='generator' content='cgit %s'/>\n", cgit_version);
484 if (ctx->cfg.robots && *ctx->cfg.robots) 484 if (ctx->cfg.robots && *ctx->cfg.robots)
485 htmlf("<meta name='robots' content='%s'/>\n", ctx->cfg.robots); 485 htmlf("<meta name='robots' content='%s'/>\n", ctx->cfg.robots);
486 html("<link rel='stylesheet' type='text/css' href='"); 486 html("<link rel='stylesheet' type='text/css' href='");
487 html_attr(ctx->cfg.css); 487 html_attr(ctx->cfg.css);
488 html("'/>\n"); 488 html("'/>\n");
489 if (ctx->cfg.favicon) { 489 if (ctx->cfg.favicon) {
490 html("<link rel='shortcut icon' href='"); 490 html("<link rel='shortcut icon' href='");
491 html_attr(ctx->cfg.favicon); 491 html_attr(ctx->cfg.favicon);
492 html("'/>\n"); 492 html("'/>\n");
493 } 493 }
494 if (host && ctx->repo) { 494 if (host && ctx->repo) {
495 html("<link rel='alternate' title='Atom feed' href='http://"); 495 html("<link rel='alternate' title='Atom feed' href='http://");
496 html_attr(cgit_hosturl()); 496 html_attr(cgit_hosturl());
497 html_attr(cgit_fileurl(ctx->repo->url, "atom", ctx->qry.path, 497 html_attr(cgit_fileurl(ctx->repo->url, "atom", ctx->qry.path,
498 fmt("h=%s", ctx->qry.head))); 498 fmt("h=%s", ctx->qry.head)));
499 html("' type='application/atom+xml'/>"); 499 html("' type='application/atom+xml'/>");
500 } 500 }
501 html("</head>\n"); 501 html("</head>\n");
502 html("<body>\n"); 502 html("<body>\n");
503 if (ctx->cfg.header)
504 html_include(ctx->cfg.header);
503} 505}
504 506
505void cgit_print_docend() 507void cgit_print_docend()
506{ 508{
507 html("</div>"); 509 html("</div>");
508 if (ctx.cfg.footer) 510 if (ctx.cfg.footer)
509 html_include(ctx.cfg.footer); 511 html_include(ctx.cfg.footer);
510 else { 512 else {
511 htmlf("<div class='footer'>generated by cgit %s at ", 513 htmlf("<div class='footer'>generated by cgit %s at ",
512 cgit_version); 514 cgit_version);
513 cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time); 515 cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time);
514 html("</div>\n"); 516 html("</div>\n");
515 } 517 }
516 html("</body>\n</html>\n"); 518 html("</body>\n</html>\n");
517} 519}
518 520
519int print_branch_option(const char *refname, const unsigned char *sha1, 521int print_branch_option(const char *refname, const unsigned char *sha1,
520 int flags, void *cb_data) 522 int flags, void *cb_data)
521{ 523{
522 char *name = (char *)refname; 524 char *name = (char *)refname;
523 html_option(name, name, ctx.qry.head); 525 html_option(name, name, ctx.qry.head);
524 return 0; 526 return 0;
525} 527}
526 528