summaryrefslogtreecommitdiffabout
path: root/cgit.h
authorLars Hjemli <hjemli@gmail.com>2009-07-31 15:38:38 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2009-07-31 15:39:51 (UTC)
commitd6f6072560c963065b13c704fa1fa6f8950e4bac (patch) (unidiff)
tree096a542cd404d4a174f2f4a1da44ab0df99aa7c3 /cgit.h
parent286a905842dc0bec6d21a614ec4a97c5f19d5bc4 (diff)
downloadcgit-d6f6072560c963065b13c704fa1fa6f8950e4bac.zip
cgit-d6f6072560c963065b13c704fa1fa6f8950e4bac.tar.gz
cgit-d6f6072560c963065b13c704fa1fa6f8950e4bac.tar.bz2
Add generic filter/plugin infrastructure
The functions cgit_open_filter() and cgit_close_filter() can be used to execute filters on the output stream from cgit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cgit.h') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/cgit.h b/cgit.h
index 8c64efe..d0fff1f 100644
--- a/cgit.h
+++ b/cgit.h
@@ -100,64 +100,73 @@ struct refinfo {
100 struct commitinfo *commit; 100 struct commitinfo *commit;
101 }; 101 };
102}; 102};
103 103
104struct reflist { 104struct reflist {
105 struct refinfo **refs; 105 struct refinfo **refs;
106 int alloc; 106 int alloc;
107 int count; 107 int count;
108}; 108};
109 109
110struct cgit_query { 110struct cgit_query {
111 int has_symref; 111 int has_symref;
112 int has_sha1; 112 int has_sha1;
113 char *raw; 113 char *raw;
114 char *repo; 114 char *repo;
115 char *page; 115 char *page;
116 char *search; 116 char *search;
117 char *grep; 117 char *grep;
118 char *head; 118 char *head;
119 char *sha1; 119 char *sha1;
120 char *sha2; 120 char *sha2;
121 char *path; 121 char *path;
122 char *name; 122 char *name;
123 char *mimetype; 123 char *mimetype;
124 char *url; 124 char *url;
125 char *period; 125 char *period;
126 int ofs; 126 int ofs;
127 int nohead; 127 int nohead;
128 char *sort; 128 char *sort;
129 int showmsg; 129 int showmsg;
130}; 130};
131 131
132struct cgit_filter {
133 char *cmd;
134 char **argv;
135 int old_stdout;
136 int pipe_fh[2];
137 int pid;
138 int exitstatus;
139};
140
132struct cgit_config { 141struct cgit_config {
133 char *agefile; 142 char *agefile;
134 char *cache_root; 143 char *cache_root;
135 char *clone_prefix; 144 char *clone_prefix;
136 char *css; 145 char *css;
137 char *favicon; 146 char *favicon;
138 char *footer; 147 char *footer;
139 char *head_include; 148 char *head_include;
140 char *header; 149 char *header;
141 char *index_header; 150 char *index_header;
142 char *index_info; 151 char *index_info;
143 char *logo; 152 char *logo;
144 char *logo_link; 153 char *logo_link;
145 char *module_link; 154 char *module_link;
146 char *repo_group; 155 char *repo_group;
147 char *robots; 156 char *robots;
148 char *root_title; 157 char *root_title;
149 char *root_desc; 158 char *root_desc;
150 char *root_readme; 159 char *root_readme;
151 char *script_name; 160 char *script_name;
152 char *virtual_root; 161 char *virtual_root;
153 int cache_size; 162 int cache_size;
154 int cache_dynamic_ttl; 163 int cache_dynamic_ttl;
155 int cache_max_create_time; 164 int cache_max_create_time;
156 int cache_repo_ttl; 165 int cache_repo_ttl;
157 int cache_root_ttl; 166 int cache_root_ttl;
158 int cache_static_ttl; 167 int cache_static_ttl;
159 int embedded; 168 int embedded;
160 int enable_index_links; 169 int enable_index_links;
161 int enable_log_filecount; 170 int enable_log_filecount;
162 int enable_log_linecount; 171 int enable_log_linecount;
163 int local_time; 172 int local_time;
@@ -219,34 +228,37 @@ extern int chk_non_negative(int result, char *msg);
219 228
220extern char *trim_end(const char *str, char c); 229extern char *trim_end(const char *str, char c);
221extern char *strlpart(char *txt, int maxlen); 230extern char *strlpart(char *txt, int maxlen);
222extern char *strrpart(char *txt, int maxlen); 231extern char *strrpart(char *txt, int maxlen);
223 232
224extern void cgit_add_ref(struct reflist *list, struct refinfo *ref); 233extern void cgit_add_ref(struct reflist *list, struct refinfo *ref);
225extern int cgit_refs_cb(const char *refname, const unsigned char *sha1, 234extern int cgit_refs_cb(const char *refname, const unsigned char *sha1,
226 int flags, void *cb_data); 235 int flags, void *cb_data);
227 236
228extern void *cgit_free_commitinfo(struct commitinfo *info); 237extern void *cgit_free_commitinfo(struct commitinfo *info);
229 238
230extern int cgit_diff_files(const unsigned char *old_sha1, 239extern int cgit_diff_files(const unsigned char *old_sha1,
231 const unsigned char *new_sha1, 240 const unsigned char *new_sha1,
232 unsigned long *old_size, unsigned long *new_size, 241 unsigned long *old_size, unsigned long *new_size,
233 int *binary, linediff_fn fn); 242 int *binary, linediff_fn fn);
234 243
235extern void cgit_diff_tree(const unsigned char *old_sha1, 244extern void cgit_diff_tree(const unsigned char *old_sha1,
236 const unsigned char *new_sha1, 245 const unsigned char *new_sha1,
237 filepair_fn fn, const char *prefix); 246 filepair_fn fn, const char *prefix);
238 247
239extern void cgit_diff_commit(struct commit *commit, filepair_fn fn); 248extern void cgit_diff_commit(struct commit *commit, filepair_fn fn);
240 249
241extern char *fmt(const char *format,...); 250extern char *fmt(const char *format,...);
242 251
243extern struct commitinfo *cgit_parse_commit(struct commit *commit); 252extern struct commitinfo *cgit_parse_commit(struct commit *commit);
244extern struct taginfo *cgit_parse_tag(struct tag *tag); 253extern struct taginfo *cgit_parse_tag(struct tag *tag);
245extern void cgit_parse_url(const char *url); 254extern void cgit_parse_url(const char *url);
246 255
247extern const char *cgit_repobasename(const char *reponame); 256extern const char *cgit_repobasename(const char *reponame);
248 257
249extern int cgit_parse_snapshots_mask(const char *str); 258extern int cgit_parse_snapshots_mask(const char *str);
250 259
260extern int cgit_open_filter(struct cgit_filter *filter);
261extern int cgit_close_filter(struct cgit_filter *filter);
262
251 263
252#endif /* CGIT_H */ 264#endif /* CGIT_H */