summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2007-10-30 09:39:59 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-10-30 09:39:59 (UTC)
commit10ac7ad1f30f914dc5ff36ba3651ef6dca11aaf7 (patch) (unidiff)
tree8d185e972d4b235fc46156b9173a3406af2aacf6
parentfc5880fab8b9afc589aaadd1299c34a6ef2a3c2d (diff)
downloadcgit-10ac7ad1f30f914dc5ff36ba3651ef6dca11aaf7.zip
cgit-10ac7ad1f30f914dc5ff36ba3651ef6dca11aaf7.tar.gz
cgit-10ac7ad1f30f914dc5ff36ba3651ef6dca11aaf7.tar.bz2
Add config param 'index-info'
This parameter will be used to include a html file in the upcoming sidebar on the index page. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--cgit.h1
-rw-r--r--shared.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/cgit.h b/cgit.h
index dd83f70..b8af970 100644
--- a/cgit.h
+++ b/cgit.h
@@ -79,96 +79,97 @@ struct repolist {
79 int count; 79 int count;
80 struct repoinfo *repos; 80 struct repoinfo *repos;
81}; 81};
82 82
83struct commitinfo { 83struct commitinfo {
84 struct commit *commit; 84 struct commit *commit;
85 char *author; 85 char *author;
86 char *author_email; 86 char *author_email;
87 unsigned long author_date; 87 unsigned long author_date;
88 char *committer; 88 char *committer;
89 char *committer_email; 89 char *committer_email;
90 unsigned long committer_date; 90 unsigned long committer_date;
91 char *subject; 91 char *subject;
92 char *msg; 92 char *msg;
93}; 93};
94 94
95struct taginfo { 95struct taginfo {
96 char *tagger; 96 char *tagger;
97 char *tagger_email; 97 char *tagger_email;
98 int tagger_date; 98 int tagger_date;
99 char *msg; 99 char *msg;
100}; 100};
101 101
102struct refinfo { 102struct refinfo {
103 const char *refname; 103 const char *refname;
104 struct object *object; 104 struct object *object;
105 union { 105 union {
106 struct taginfo *tag; 106 struct taginfo *tag;
107 struct commitinfo *commit; 107 struct commitinfo *commit;
108 }; 108 };
109}; 109};
110 110
111struct reflist { 111struct reflist {
112 struct refinfo **refs; 112 struct refinfo **refs;
113 int alloc; 113 int alloc;
114 int count; 114 int count;
115}; 115};
116 116
117extern const char *cgit_version; 117extern const char *cgit_version;
118 118
119extern struct repolist cgit_repolist; 119extern struct repolist cgit_repolist;
120extern struct repoinfo *cgit_repo; 120extern struct repoinfo *cgit_repo;
121extern int cgit_cmd; 121extern int cgit_cmd;
122 122
123extern char *cgit_root_title; 123extern char *cgit_root_title;
124extern char *cgit_css; 124extern char *cgit_css;
125extern char *cgit_logo; 125extern char *cgit_logo;
126extern char *cgit_index_header; 126extern char *cgit_index_header;
127extern char *cgit_index_info;
127extern char *cgit_logo_link; 128extern char *cgit_logo_link;
128extern char *cgit_module_link; 129extern char *cgit_module_link;
129extern char *cgit_agefile; 130extern char *cgit_agefile;
130extern char *cgit_virtual_root; 131extern char *cgit_virtual_root;
131extern char *cgit_script_name; 132extern char *cgit_script_name;
132extern char *cgit_cache_root; 133extern char *cgit_cache_root;
133extern char *cgit_repo_group; 134extern char *cgit_repo_group;
134 135
135extern int cgit_nocache; 136extern int cgit_nocache;
136extern int cgit_snapshots; 137extern int cgit_snapshots;
137extern int cgit_enable_index_links; 138extern int cgit_enable_index_links;
138extern int cgit_enable_log_filecount; 139extern int cgit_enable_log_filecount;
139extern int cgit_enable_log_linecount; 140extern int cgit_enable_log_linecount;
140extern int cgit_max_lock_attempts; 141extern int cgit_max_lock_attempts;
141extern int cgit_cache_root_ttl; 142extern int cgit_cache_root_ttl;
142extern int cgit_cache_repo_ttl; 143extern int cgit_cache_repo_ttl;
143extern int cgit_cache_dynamic_ttl; 144extern int cgit_cache_dynamic_ttl;
144extern int cgit_cache_static_ttl; 145extern int cgit_cache_static_ttl;
145extern int cgit_cache_max_create_time; 146extern int cgit_cache_max_create_time;
146extern int cgit_summary_log; 147extern int cgit_summary_log;
147extern int cgit_summary_tags; 148extern int cgit_summary_tags;
148extern int cgit_summary_branches; 149extern int cgit_summary_branches;
149 150
150extern int cgit_max_msg_len; 151extern int cgit_max_msg_len;
151extern int cgit_max_repodesc_len; 152extern int cgit_max_repodesc_len;
152extern int cgit_max_commit_count; 153extern int cgit_max_commit_count;
153 154
154extern int cgit_query_has_symref; 155extern int cgit_query_has_symref;
155extern int cgit_query_has_sha1; 156extern int cgit_query_has_sha1;
156 157
157extern char *cgit_querystring; 158extern char *cgit_querystring;
158extern char *cgit_query_repo; 159extern char *cgit_query_repo;
159extern char *cgit_query_page; 160extern char *cgit_query_page;
160extern char *cgit_query_search; 161extern char *cgit_query_search;
161extern char *cgit_query_grep; 162extern char *cgit_query_grep;
162extern char *cgit_query_head; 163extern char *cgit_query_head;
163extern char *cgit_query_sha1; 164extern char *cgit_query_sha1;
164extern char *cgit_query_sha2; 165extern char *cgit_query_sha2;
165extern char *cgit_query_path; 166extern char *cgit_query_path;
166extern char *cgit_query_name; 167extern char *cgit_query_name;
167extern int cgit_query_ofs; 168extern int cgit_query_ofs;
168 169
169extern int htmlfd; 170extern int htmlfd;
170 171
171extern int cgit_get_cmd_index(const char *cmd); 172extern int cgit_get_cmd_index(const char *cmd);
172extern struct repoinfo *cgit_get_repoinfo(const char *url); 173extern struct repoinfo *cgit_get_repoinfo(const char *url);
173extern void cgit_global_config_cb(const char *name, const char *value); 174extern void cgit_global_config_cb(const char *name, const char *value);
174extern void cgit_repo_config_cb(const char *name, const char *value); 175extern void cgit_repo_config_cb(const char *name, const char *value);
diff --git a/shared.c b/shared.c
index 4fab1c9..50fe8e1 100644
--- a/shared.c
+++ b/shared.c
@@ -1,68 +1,69 @@
1/* shared.c: global vars + some callback functions 1/* shared.c: global vars + some callback functions
2 * 2 *
3 * Copyright (C) 2006 Lars Hjemli 3 * Copyright (C) 2006 Lars Hjemli
4 * 4 *
5 * Licensed under GNU General Public License v2 5 * Licensed under GNU General Public License v2
6 * (see COPYING for full license text) 6 * (see COPYING for full license text)
7 */ 7 */
8 8
9#include "cgit.h" 9#include "cgit.h"
10 10
11struct repolist cgit_repolist; 11struct repolist cgit_repolist;
12struct repoinfo *cgit_repo; 12struct repoinfo *cgit_repo;
13int cgit_cmd; 13int cgit_cmd;
14 14
15const char *cgit_version = CGIT_VERSION; 15const char *cgit_version = CGIT_VERSION;
16 16
17char *cgit_root_title = "Git repository browser"; 17char *cgit_root_title = "Git repository browser";
18char *cgit_css = "/cgit.css"; 18char *cgit_css = "/cgit.css";
19char *cgit_logo = "/git-logo.png"; 19char *cgit_logo = "/git-logo.png";
20char *cgit_index_header = NULL; 20char *cgit_index_header = NULL;
21char *cgit_index_info = NULL;
21char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/"; 22char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/";
22char *cgit_module_link = "./?repo=%s&page=commit&id=%s"; 23char *cgit_module_link = "./?repo=%s&page=commit&id=%s";
23char *cgit_agefile = "info/web/last-modified"; 24char *cgit_agefile = "info/web/last-modified";
24char *cgit_virtual_root = NULL; 25char *cgit_virtual_root = NULL;
25char *cgit_script_name = CGIT_SCRIPT_NAME; 26char *cgit_script_name = CGIT_SCRIPT_NAME;
26char *cgit_cache_root = CGIT_CACHE_ROOT; 27char *cgit_cache_root = CGIT_CACHE_ROOT;
27char *cgit_repo_group = NULL; 28char *cgit_repo_group = NULL;
28 29
29int cgit_nocache = 0; 30int cgit_nocache = 0;
30int cgit_snapshots = 0; 31int cgit_snapshots = 0;
31int cgit_enable_index_links = 0; 32int cgit_enable_index_links = 0;
32int cgit_enable_log_filecount = 0; 33int cgit_enable_log_filecount = 0;
33int cgit_enable_log_linecount = 0; 34int cgit_enable_log_linecount = 0;
34int cgit_max_lock_attempts = 5; 35int cgit_max_lock_attempts = 5;
35int cgit_cache_root_ttl = 5; 36int cgit_cache_root_ttl = 5;
36int cgit_cache_repo_ttl = 5; 37int cgit_cache_repo_ttl = 5;
37int cgit_cache_dynamic_ttl = 5; 38int cgit_cache_dynamic_ttl = 5;
38int cgit_cache_static_ttl = -1; 39int cgit_cache_static_ttl = -1;
39int cgit_cache_max_create_time = 5; 40int cgit_cache_max_create_time = 5;
40int cgit_summary_log = 0; 41int cgit_summary_log = 0;
41int cgit_summary_tags = 0; 42int cgit_summary_tags = 0;
42int cgit_summary_branches = 0; 43int cgit_summary_branches = 0;
43int cgit_renamelimit = -1; 44int cgit_renamelimit = -1;
44 45
45int cgit_max_msg_len = 60; 46int cgit_max_msg_len = 60;
46int cgit_max_repodesc_len = 60; 47int cgit_max_repodesc_len = 60;
47int cgit_max_commit_count = 50; 48int cgit_max_commit_count = 50;
48 49
49int cgit_query_has_symref = 0; 50int cgit_query_has_symref = 0;
50int cgit_query_has_sha1 = 0; 51int cgit_query_has_sha1 = 0;
51 52
52char *cgit_querystring = NULL; 53char *cgit_querystring = NULL;
53char *cgit_query_repo = NULL; 54char *cgit_query_repo = NULL;
54char *cgit_query_page = NULL; 55char *cgit_query_page = NULL;
55char *cgit_query_head = NULL; 56char *cgit_query_head = NULL;
56char *cgit_query_search = NULL; 57char *cgit_query_search = NULL;
57char *cgit_query_grep = NULL; 58char *cgit_query_grep = NULL;
58char *cgit_query_sha1 = NULL; 59char *cgit_query_sha1 = NULL;
59char *cgit_query_sha2 = NULL; 60char *cgit_query_sha2 = NULL;
60char *cgit_query_path = NULL; 61char *cgit_query_path = NULL;
61char *cgit_query_name = NULL; 62char *cgit_query_name = NULL;
62int cgit_query_ofs = 0; 63int cgit_query_ofs = 0;
63 64
64int htmlfd = 0; 65int htmlfd = 0;
65 66
66 67
67int cgit_get_cmd_index(const char *cmd) 68int cgit_get_cmd_index(const char *cmd)
68{ 69{
@@ -105,96 +106,98 @@ struct repoinfo *add_repo(const char *url)
105 if (cgit_repolist.length == 0) 106 if (cgit_repolist.length == 0)
106 cgit_repolist.length = 8; 107 cgit_repolist.length = 8;
107 else 108 else
108 cgit_repolist.length *= 2; 109 cgit_repolist.length *= 2;
109 cgit_repolist.repos = xrealloc(cgit_repolist.repos, 110 cgit_repolist.repos = xrealloc(cgit_repolist.repos,
110 cgit_repolist.length * 111 cgit_repolist.length *
111 sizeof(struct repoinfo)); 112 sizeof(struct repoinfo));
112 } 113 }
113 114
114 ret = &cgit_repolist.repos[cgit_repolist.count-1]; 115 ret = &cgit_repolist.repos[cgit_repolist.count-1];
115 ret->url = trim_end(url, '/'); 116 ret->url = trim_end(url, '/');
116 ret->name = ret->url; 117 ret->name = ret->url;
117 ret->path = NULL; 118 ret->path = NULL;
118 ret->desc = NULL; 119 ret->desc = NULL;
119 ret->owner = NULL; 120 ret->owner = NULL;
120 ret->group = cgit_repo_group; 121 ret->group = cgit_repo_group;
121 ret->defbranch = "master"; 122 ret->defbranch = "master";
122 ret->snapshots = cgit_snapshots; 123 ret->snapshots = cgit_snapshots;
123 ret->enable_log_filecount = cgit_enable_log_filecount; 124 ret->enable_log_filecount = cgit_enable_log_filecount;
124 ret->enable_log_linecount = cgit_enable_log_linecount; 125 ret->enable_log_linecount = cgit_enable_log_linecount;
125 ret->module_link = cgit_module_link; 126 ret->module_link = cgit_module_link;
126 ret->readme = NULL; 127 ret->readme = NULL;
127 return ret; 128 return ret;
128} 129}
129 130
130struct repoinfo *cgit_get_repoinfo(const char *url) 131struct repoinfo *cgit_get_repoinfo(const char *url)
131{ 132{
132 int i; 133 int i;
133 struct repoinfo *repo; 134 struct repoinfo *repo;
134 135
135 for (i=0; i<cgit_repolist.count; i++) { 136 for (i=0; i<cgit_repolist.count; i++) {
136 repo = &cgit_repolist.repos[i]; 137 repo = &cgit_repolist.repos[i];
137 if (!strcmp(repo->url, url)) 138 if (!strcmp(repo->url, url))
138 return repo; 139 return repo;
139 } 140 }
140 return NULL; 141 return NULL;
141} 142}
142 143
143void cgit_global_config_cb(const char *name, const char *value) 144void cgit_global_config_cb(const char *name, const char *value)
144{ 145{
145 if (!strcmp(name, "root-title")) 146 if (!strcmp(name, "root-title"))
146 cgit_root_title = xstrdup(value); 147 cgit_root_title = xstrdup(value);
147 else if (!strcmp(name, "css")) 148 else if (!strcmp(name, "css"))
148 cgit_css = xstrdup(value); 149 cgit_css = xstrdup(value);
149 else if (!strcmp(name, "logo")) 150 else if (!strcmp(name, "logo"))
150 cgit_logo = xstrdup(value); 151 cgit_logo = xstrdup(value);
151 else if (!strcmp(name, "index-header")) 152 else if (!strcmp(name, "index-header"))
152 cgit_index_header = xstrdup(value); 153 cgit_index_header = xstrdup(value);
154 else if (!strcmp(name, "index-info"))
155 cgit_index_info = xstrdup(value);
153 else if (!strcmp(name, "logo-link")) 156 else if (!strcmp(name, "logo-link"))
154 cgit_logo_link = xstrdup(value); 157 cgit_logo_link = xstrdup(value);
155 else if (!strcmp(name, "module-link")) 158 else if (!strcmp(name, "module-link"))
156 cgit_module_link = xstrdup(value); 159 cgit_module_link = xstrdup(value);
157 else if (!strcmp(name, "virtual-root")) 160 else if (!strcmp(name, "virtual-root"))
158 cgit_virtual_root = trim_end(value, '/'); 161 cgit_virtual_root = trim_end(value, '/');
159 else if (!strcmp(name, "nocache")) 162 else if (!strcmp(name, "nocache"))
160 cgit_nocache = atoi(value); 163 cgit_nocache = atoi(value);
161 else if (!strcmp(name, "snapshots")) 164 else if (!strcmp(name, "snapshots"))
162 cgit_snapshots = cgit_parse_snapshots_mask(value); 165 cgit_snapshots = cgit_parse_snapshots_mask(value);
163 else if (!strcmp(name, "enable-index-links")) 166 else if (!strcmp(name, "enable-index-links"))
164 cgit_enable_index_links = atoi(value); 167 cgit_enable_index_links = atoi(value);
165 else if (!strcmp(name, "enable-log-filecount")) 168 else if (!strcmp(name, "enable-log-filecount"))
166 cgit_enable_log_filecount = atoi(value); 169 cgit_enable_log_filecount = atoi(value);
167 else if (!strcmp(name, "enable-log-linecount")) 170 else if (!strcmp(name, "enable-log-linecount"))
168 cgit_enable_log_linecount = atoi(value); 171 cgit_enable_log_linecount = atoi(value);
169 else if (!strcmp(name, "cache-root")) 172 else if (!strcmp(name, "cache-root"))
170 cgit_cache_root = xstrdup(value); 173 cgit_cache_root = xstrdup(value);
171 else if (!strcmp(name, "cache-root-ttl")) 174 else if (!strcmp(name, "cache-root-ttl"))
172 cgit_cache_root_ttl = atoi(value); 175 cgit_cache_root_ttl = atoi(value);
173 else if (!strcmp(name, "cache-repo-ttl")) 176 else if (!strcmp(name, "cache-repo-ttl"))
174 cgit_cache_repo_ttl = atoi(value); 177 cgit_cache_repo_ttl = atoi(value);
175 else if (!strcmp(name, "cache-static-ttl")) 178 else if (!strcmp(name, "cache-static-ttl"))
176 cgit_cache_static_ttl = atoi(value); 179 cgit_cache_static_ttl = atoi(value);
177 else if (!strcmp(name, "cache-dynamic-ttl")) 180 else if (!strcmp(name, "cache-dynamic-ttl"))
178 cgit_cache_dynamic_ttl = atoi(value); 181 cgit_cache_dynamic_ttl = atoi(value);
179 else if (!strcmp(name, "max-message-length")) 182 else if (!strcmp(name, "max-message-length"))
180 cgit_max_msg_len = atoi(value); 183 cgit_max_msg_len = atoi(value);
181 else if (!strcmp(name, "max-repodesc-length")) 184 else if (!strcmp(name, "max-repodesc-length"))
182 cgit_max_repodesc_len = atoi(value); 185 cgit_max_repodesc_len = atoi(value);
183 else if (!strcmp(name, "max-commit-count")) 186 else if (!strcmp(name, "max-commit-count"))
184 cgit_max_commit_count = atoi(value); 187 cgit_max_commit_count = atoi(value);
185 else if (!strcmp(name, "summary-log")) 188 else if (!strcmp(name, "summary-log"))
186 cgit_summary_log = atoi(value); 189 cgit_summary_log = atoi(value);
187 else if (!strcmp(name, "summary-branches")) 190 else if (!strcmp(name, "summary-branches"))
188 cgit_summary_branches = atoi(value); 191 cgit_summary_branches = atoi(value);
189 else if (!strcmp(name, "summary-tags")) 192 else if (!strcmp(name, "summary-tags"))
190 cgit_summary_tags = atoi(value); 193 cgit_summary_tags = atoi(value);
191 else if (!strcmp(name, "agefile")) 194 else if (!strcmp(name, "agefile"))
192 cgit_agefile = xstrdup(value); 195 cgit_agefile = xstrdup(value);
193 else if (!strcmp(name, "renamelimit")) 196 else if (!strcmp(name, "renamelimit"))
194 cgit_renamelimit = atoi(value); 197 cgit_renamelimit = atoi(value);
195 else if (!strcmp(name, "repo.group")) 198 else if (!strcmp(name, "repo.group"))
196 cgit_repo_group = xstrdup(value); 199 cgit_repo_group = xstrdup(value);
197 else if (!strcmp(name, "repo.url")) 200 else if (!strcmp(name, "repo.url"))
198 cgit_repo = add_repo(value); 201 cgit_repo = add_repo(value);
199 else if (!strcmp(name, "repo.name")) 202 else if (!strcmp(name, "repo.name"))
200 cgit_repo->name = xstrdup(value); 203 cgit_repo->name = xstrdup(value);