moved nobug flag declarations to webgit.h
[webgit] / src / webgit.h
1 /*
2     cehtehs git web frontend
3
4   Copyright (C)
5     2007, 2008,         Christian Thaeter <ct@pipapo.org>
6
7   This program is free software: you can redistribute it and/or modify
8   it under the terms of the GNU Affero General Public License as published by
9   the Free Software Foundation, either version 3 of the License, or
10   (at your option) any later version.
11
12   This program is distributed in the hope that it will be useful,
13   but WITHOUT ANY WARRANTY; without even the implied warranty of
14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   GNU Affero General Public License for more details.
16
17   You should have received a copy of the GNU Affero General Public License
18   along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 */
20 #ifndef WEBGIT_H
21 #define WEBGIT_H
22
23 #define NOBUG_LOG_TARGET NOBUG_TARGET_APPLICATION
24 #include <nobug.h>
25
26 #include "cwa.h"
27
28 #include "llist.h"
29
30 NOBUG_DECLARE_FLAG(webgit);
31 NOBUG_DECLARE_FLAG(query);
32 NOBUG_DECLARE_FLAG(git);
33 NOBUG_DECLARE_FLAG(html);
34
35
36 //#define ENABLE_CODEPRESS 1
37 #define ENABLE_SORTTABLE 1
38
39 #define WEBGIT_CONFIG "./webgit.conf" /* TODO fix via configure --with-webgit-config=... */
40
41 #ifndef WEBGIT_CONFIG
42 #define WEBGIT_CONFIG "/etc/webgit.conf"
43 #endif
44
45 #ifndef WEBGIT_SKINDIR_DEFAULT
46 #define WEBGIT_SKINDIR_DEFAULT "/usr/share/webgit/skins"
47 #endif
48
49 #ifndef WEBGIT_WEBSKINDIR_DEFAULT
50 #define WEBGIT_WEBSKINDIR_DEFAULT "/webgit_skins"
51 #endif
52
53 #ifndef WEBGIT_DEFAULT_SKIN
54 #define WEBGIT_DEFAULT_SKIN "default"
55 #endif
56
57 extern Html error_log;
58
59 struct webgit_query
60 {
61   Cgi request;
62   time_t now;
63
64   int account_validated;
65
66   char* content_type;
67   struct webgit_repo_info* current_repo;
68
69   char* login_cookie;
70   char* prefs_cookie;
71   time_t cookie_expire;
72
73   /* confiuration parameters */
74   int count_def;
75   char* rxpd;
76   char* skindir;
77   char* webskindir;
78   char* secret;
79   char* accountdir;
80   unsigned long maxage;
81   //int cache_read;
82   //int cache_write;
83   //int cache_expire;
84
85   /* cgi parameters*/
86   char* repo;
87   char* action;
88   char* object;
89   char* head;
90   char* commit;
91   char* path;
92   char* blob;
93   size_t blob_size;
94   char* file;
95   size_t file_size;
96   char* oldpath;
97   char* comment;
98   char* mode;
99   char* user;
100   char* name;
101   char* email;
102   char* ssign;
103   int recover;
104   char* skin;
105   int count;
106
107   /* list of repositories */
108   llist repos;
109 };
110
111
112 struct webgit_repo_info
113 {
114   llist node;
115
116   struct webgit_query* query;
117
118   char* path;
119   char* name;
120   char* owner;
121   char* description;
122   char* url;
123   char* logo;
124   char* logolink;
125   char* readme;
126   unsigned long maxage;
127   int editable;
128
129   char* last_commit;
130   char* last_tree;
131   char* last_head;
132   char* last_committer_name;
133   char* last_committer_email;
134   char* last_author_name;
135   char* last_author_email;
136   unsigned long age;
137
138   char* worktree;
139 };
140
141
142 Html
143 webgit_email_link (Html name, Html email);
144
145 char*
146 webgit_mimetype (const char* name);
147
148 void
149 webgit_err (const char *err, ...);
150
151 void
152 webgit_warn (const char *err, ...);
153
154 char*
155 webgit_webskinpath (struct webgit_query* query, const char* element);
156
157 char*
158 webgit_skinpath (struct webgit_query* query, const char* element);
159
160 #endif
161
162 /*
163 //      Local Variables:
164 //      mode: C
165 //      c-file-style: "gnu"
166 //      indent-tabs-mode: nil
167 //      End:
168 */