Add include-parameter to config files
This parameter can be used to include another config-file, like a standalone repository listing. Suggested in a patch by Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
parent
9ecde6568a
commit
5ec6e02bd1
3
cgitrc
3
cgitrc
@ -63,6 +63,9 @@
|
|||||||
#cache-root=/var/cache/cgit
|
#cache-root=/var/cache/cgit
|
||||||
|
|
||||||
|
|
||||||
|
## Include another config-file
|
||||||
|
#include=/var/cgit/repolist
|
||||||
|
|
||||||
##
|
##
|
||||||
## Time-To-Live settings: specifies how long (in minutes) different pages
|
## Time-To-Live settings: specifies how long (in minutes) different pages
|
||||||
## should be cached (0 for instant expiration, -1 for immortal pages)
|
## should be cached (0 for instant expiration, -1 for immortal pages)
|
||||||
|
14
parsing.c
14
parsing.c
@ -64,19 +64,21 @@ int read_config_line(FILE *f, char *line, const char **value, int bufsize)
|
|||||||
|
|
||||||
int cgit_read_config(const char *filename, configfn fn)
|
int cgit_read_config(const char *filename, configfn fn)
|
||||||
{
|
{
|
||||||
int ret = 0, len;
|
static int nesting;
|
||||||
|
int len;
|
||||||
char line[256];
|
char line[256];
|
||||||
const char *value;
|
const char *value;
|
||||||
FILE *f = fopen(filename, "r");
|
FILE *f;
|
||||||
|
|
||||||
if (!f)
|
/* cancel the reading of yet another configfile after 16 invocations */
|
||||||
|
if (nesting++ > 16)
|
||||||
|
return -1;
|
||||||
|
if (!(f = fopen(filename, "r")))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
while((len = read_config_line(f, line, &value, sizeof(line))) > 0)
|
while((len = read_config_line(f, line, &value, sizeof(line))) > 0)
|
||||||
(*fn)(line, value);
|
(*fn)(line, value);
|
||||||
|
|
||||||
fclose(f);
|
fclose(f);
|
||||||
return ret;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *convert_query_hexchar(char *txt)
|
char *convert_query_hexchar(char *txt)
|
||||||
|
2
shared.c
2
shared.c
@ -137,6 +137,8 @@ void cgit_global_config_cb(const char *name, const char *value)
|
|||||||
cgit_repo->snapshots = atoi(value);
|
cgit_repo->snapshots = atoi(value);
|
||||||
else if (cgit_repo && !strcmp(name, "repo.module-link"))
|
else if (cgit_repo && !strcmp(name, "repo.module-link"))
|
||||||
cgit_repo->module_link= xstrdup(value);
|
cgit_repo->module_link= xstrdup(value);
|
||||||
|
else if (!strcmp(name, "include"))
|
||||||
|
cgit_read_config(value, cgit_global_config_cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cgit_repo_config_cb(const char *name, const char *value)
|
void cgit_repo_config_cb(const char *name, const char *value)
|
||||||
|
Loading…
Reference in New Issue
Block a user