add query parameters for user accounts
[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 #include "cwa.h"
24
25 #include "llist.h"
26
27 #ifndef WEBGIT_SKINDIR_DEFAULT
28 #define WEBGIT_SKINDIR_DEFAULT "/usr/share/webgit/skins"
29 #endif
30
31 #ifndef WEBGIT_WEBSKINDIR_DEFAULT
32 #define WEBGIT_WEBSKINDIR_DEFAULT "/webgit_skins"
33 #endif
34
35 #ifndef WEBGIT_DEFAULT_SKIN
36 #define WEBGIT_DEFAULT_SKIN "default"
37 #endif
38
39 extern Html error_log;
40
41 struct webgit_query
42 {
43   Cgi request;
44   time_t now;
45
46   int deref_to_tree;
47
48   char* content_type;
49
50   /* confiuration parameters */
51   char* stylesheet;
52   int count_def;
53   char* rxpd;
54   char* skindir;
55   char* webskindir;
56   char* secret;
57   char* accountdir;
58   unsigned long maxage;
59   //int cache_read;
60   //int cache_write;
61   //int cache_expire;
62
63   /* cgi parameters*/
64   char* repo;
65   char* action;
66   char* object;
67   char* head;
68   char* path;
69   char* blob;
70   size_t blob_size;
71   char* user;
72   char* name;
73   char* email;
74   char* ssign;
75   char* skin;
76   int count;
77
78   /* list of repositories */
79   llist repos;
80 };
81
82
83 struct webgit_repo_info
84 {
85   llist node;
86
87   struct webgit_query* query;
88
89   char* path;
90   char* name;
91   char* owner;
92   char* description;
93   char* url;
94   char* logo;
95   char* logolink;
96   char* readme;
97   unsigned long maxage;
98
99   char* last_commit;
100   char* last_tree;
101   char* last_head;
102   char* last_committer_name;
103   char* last_committer_email;
104   char* last_author_name;
105   char* last_author_email;
106
107   unsigned long age;
108 };
109
110
111 Html
112 webgit_email_link (Html name, Html email);
113
114 char*
115 webgit_mimetype (const char* name);
116
117 void
118 webgit_err (const char *err, ...);
119
120 void
121 webgit_warn (const char *err, ...);
122
123 char*
124 webgit_webskinpath (struct webgit_query* query, const char* element);
125
126 char*
127 webgit_skinpath (struct webgit_query* query, const char* element);
128
129 #endif
130
131 /*
132 //      Local Variables:
133 //      mode: C
134 //      c-file-style: "gnu"
135 //      indent-tabs-mode: nil
136 //      End:
137 */