625f2c0c3bf9b9fc7554d5334738226d7cd3d455
[webgit] / src / webgit.h
1 /*
2     cehtehs git web frontend
3
4   Copyright (C)
5     2007,               Christian Thaeter <ct@pipapo.org>
6
7   This program is free software; you can redistribute it and/or
8   modify it under the terms of the GNU General Public License as
9   published by the Free Software Foundation; either version 2 of the
10   License, or (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 General Public License for more details.
16
17   You should have received a copy of the GNU General Public License
18   along with this program; if not, write to the Free Software
19   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 */
21 #ifndef WEBGIT_H
22 #define WEBGIT_H
23
24 #include "cwa.h"
25
26 #include "llist.h"
27
28 #ifndef WEBGIT_SKINDIR_DEFAULT
29 #define WEBGIT_SKINDIR_DEFAULT "/usr/share/webgit/skins"
30 #endif
31
32 #ifndef WEBGIT_WEBSKINDIR_DEFAULT
33 #define WEBGIT_WEBSKINDIR_DEFAULT "/webgit_skins"
34 #endif
35
36 #ifndef WEBGIT_DEFAULT_SKIN
37 #define WEBGIT_DEFAULT_SKIN "default"
38 #endif
39
40 extern Html error_log;
41
42 struct webgit_query
43 {
44   Cgi request;
45   time_t now;
46
47   int deref_to_tree;
48
49   char* content_type;
50
51   /* confiuration parameters */
52   char* stylesheet;
53   int count_def;
54   char* rxpd_name;
55   unsigned rxpd_port;
56   char* skindir;
57   char* webskindir;
58   //int cache_read;
59   //int cache_write;
60   //int cache_expire;
61
62   /* cgi parameters*/
63   char* repo;
64   char* action;
65   char* object;
66   char* head;
67   char* path;
68   char* blob;
69   size_t blob_size;
70   char* skin;
71   int count;
72
73   /* list of repositories */
74   llist repos;
75 };
76
77
78 struct webgit_repo_info
79 {
80   llist node;
81
82   struct webgit_query* query;
83
84   char* path;
85   char* name;
86   char* owner;
87   char* description;
88   char* url;
89   char* readme;
90
91   char* last_commit;
92   char* last_tree;
93   char* last_head;
94   char* last_committer_name;
95   char* last_committer_email;
96   char* last_author_name;
97   char* last_author_email;
98
99   unsigned long age;
100 };
101
102
103 Html
104 webgit_email_link (Html name, Html email);
105
106 char*
107 webgit_mimetype (const char* name);
108
109 void
110 webgit_err (const char *err, ...);
111
112 void
113 webgit_warn (const char *err, ...);
114
115
116 #endif
117
118 /*
119 //      Local Variables:
120 //      mode: C
121 //      c-file-style: "gnu"
122 //      indent-tabs-mode: nil
123 //      End:
124 */