summaryrefslogtreecommitdiffabout
path: root/cgit.h
authorLars Hjemli <hjemli@gmail.com>2009-08-23 22:04:58 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2009-08-24 08:22:58 (UTC)
commit74061ed5f03e72796450aa3b8ca1cf6ced5d59e2 (patch) (unidiff)
tree235ab2c29c027f19b00da815af3bf1d2856edc21 /cgit.h
parenta1b3938f711c9b0e5eedad1678535e5779da82c1 (diff)
downloadcgit-74061ed5f03e72796450aa3b8ca1cf6ced5d59e2.zip
cgit-74061ed5f03e72796450aa3b8ca1cf6ced5d59e2.tar.gz
cgit-74061ed5f03e72796450aa3b8ca1cf6ced5d59e2.tar.bz2
Add support for repo-local cgitrc file
When recursively scanning a directory tree looking for git repositories, cgit will now parse cgitrc files found within such repositories. The repo-specific config files can include any repo-specific options except 'repo.url' and 'repo.path'. Also, in such config files the 'repo.' prefix can not be used, i.e. the valid options then becomes: * name * clone-url * desc * ower * defbranch * snapshots * enable-log-filecount * enable-log-linecount * max-stats * module-link * section * about-filter * commit-filter * source-filter * readme Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cgit.h') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/cgit.h b/cgit.h
index fc7c7d5..3359be9 100644
--- a/cgit.h
+++ b/cgit.h
@@ -34,96 +34,99 @@
34 */ 34 */
35#define TM_MIN 60 35#define TM_MIN 60
36#define TM_HOUR (TM_MIN * 60) 36#define TM_HOUR (TM_MIN * 60)
37#define TM_DAY (TM_HOUR * 24) 37#define TM_DAY (TM_HOUR * 24)
38#define TM_WEEK (TM_DAY * 7) 38#define TM_WEEK (TM_DAY * 7)
39#define TM_YEAR (TM_DAY * 365) 39#define TM_YEAR (TM_DAY * 365)
40#define TM_MONTH (TM_YEAR / 12.0) 40#define TM_MONTH (TM_YEAR / 12.0)
41 41
42 42
43/* 43/*
44 * Default encoding 44 * Default encoding
45 */ 45 */
46#define PAGE_ENCODING "UTF-8" 46#define PAGE_ENCODING "UTF-8"
47 47
48typedef void (*configfn)(const char *name, const char *value); 48typedef void (*configfn)(const char *name, const char *value);
49typedef void (*filepair_fn)(struct diff_filepair *pair); 49typedef void (*filepair_fn)(struct diff_filepair *pair);
50typedef void (*linediff_fn)(char *line, int len); 50typedef void (*linediff_fn)(char *line, int len);
51 51
52struct cgit_filter { 52struct cgit_filter {
53 char *cmd; 53 char *cmd;
54 char **argv; 54 char **argv;
55 int old_stdout; 55 int old_stdout;
56 int pipe_fh[2]; 56 int pipe_fh[2];
57 int pid; 57 int pid;
58 int exitstatus; 58 int exitstatus;
59}; 59};
60 60
61struct cgit_repo { 61struct cgit_repo {
62 char *url; 62 char *url;
63 char *name; 63 char *name;
64 char *path; 64 char *path;
65 char *desc; 65 char *desc;
66 char *owner; 66 char *owner;
67 char *defbranch; 67 char *defbranch;
68 char *module_link; 68 char *module_link;
69 char *readme; 69 char *readme;
70 char *section; 70 char *section;
71 char *clone_url; 71 char *clone_url;
72 int snapshots; 72 int snapshots;
73 int enable_log_filecount; 73 int enable_log_filecount;
74 int enable_log_linecount; 74 int enable_log_linecount;
75 int max_stats; 75 int max_stats;
76 time_t mtime; 76 time_t mtime;
77 struct cgit_filter *about_filter; 77 struct cgit_filter *about_filter;
78 struct cgit_filter *commit_filter; 78 struct cgit_filter *commit_filter;
79 struct cgit_filter *source_filter; 79 struct cgit_filter *source_filter;
80}; 80};
81 81
82typedef void (*repo_config_fn)(struct cgit_repo *repo, const char *name,
83 const char *value);
84
82struct cgit_repolist { 85struct cgit_repolist {
83 int length; 86 int length;
84 int count; 87 int count;
85 struct cgit_repo *repos; 88 struct cgit_repo *repos;
86}; 89};
87 90
88struct commitinfo { 91struct commitinfo {
89 struct commit *commit; 92 struct commit *commit;
90 char *author; 93 char *author;
91 char *author_email; 94 char *author_email;
92 unsigned long author_date; 95 unsigned long author_date;
93 char *committer; 96 char *committer;
94 char *committer_email; 97 char *committer_email;
95 unsigned long committer_date; 98 unsigned long committer_date;
96 char *subject; 99 char *subject;
97 char *msg; 100 char *msg;
98 char *msg_encoding; 101 char *msg_encoding;
99}; 102};
100 103
101struct taginfo { 104struct taginfo {
102 char *tagger; 105 char *tagger;
103 char *tagger_email; 106 char *tagger_email;
104 unsigned long tagger_date; 107 unsigned long tagger_date;
105 char *msg; 108 char *msg;
106}; 109};
107 110
108struct refinfo { 111struct refinfo {
109 const char *refname; 112 const char *refname;
110 struct object *object; 113 struct object *object;
111 union { 114 union {
112 struct taginfo *tag; 115 struct taginfo *tag;
113 struct commitinfo *commit; 116 struct commitinfo *commit;
114 }; 117 };
115}; 118};
116 119
117struct reflist { 120struct reflist {
118 struct refinfo **refs; 121 struct refinfo **refs;
119 int alloc; 122 int alloc;
120 int count; 123 int count;
121}; 124};
122 125
123struct cgit_query { 126struct cgit_query {
124 int has_symref; 127 int has_symref;
125 int has_sha1; 128 int has_sha1;
126 char *raw; 129 char *raw;
127 char *repo; 130 char *repo;
128 char *page; 131 char *page;
129 char *search; 132 char *search;