summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2010-06-19 09:41:32 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2010-06-19 09:41:32 (UTC)
commitcaf0825d97582d137387b8879867247e92cca022 (patch) (side-by-side diff)
treef330d875b3846467a2167ab83168b5b6cea29cdc
parentd6dc3aee9acadfe368864f24ea18ccd47bbb0b9b (diff)
parent31ba37c0a44f152005fbb8ab49c05462fb741fd6 (diff)
downloadcgit-caf0825d97582d137387b8879867247e92cca022.zip
cgit-caf0825d97582d137387b8879867247e92cca022.tar.gz
cgit-caf0825d97582d137387b8879867247e92cca022.tar.bz2
Merge branch 'lh/noweb'
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--scan-tree.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/scan-tree.c b/scan-tree.c
index dbca797..1e18f3c 100644
--- a/scan-tree.c
+++ b/scan-tree.c
@@ -35,48 +35,50 @@ static int is_git_dir(const char *path)
return 1;
}
struct cgit_repo *repo;
repo_config_fn config_fn;
static void repo_config(const char *name, const char *value)
{
config_fn(repo, name, value);
}
static void add_repo(const char *base, const char *path, repo_config_fn fn)
{
struct stat st;
struct passwd *pwd;
char *p;
size_t size;
if (stat(path, &st)) {
fprintf(stderr, "Error accessing %s: %s (%d)\n",
path, strerror(errno), errno);
return;
}
+ if (!stat(fmt("%s/noweb", path), &st))
+ return;
if ((pwd = getpwuid(st.st_uid)) == NULL) {
fprintf(stderr, "Error reading owner-info for %s: %s (%d)\n",
path, strerror(errno), errno);
return;
}
if (base == path)
p = fmt("%s", path);
else
p = fmt("%s", path + strlen(base) + 1);
if (!strcmp(p + strlen(p) - 5, "/.git"))
p[strlen(p) - 5] = '\0';
repo = cgit_add_repo(xstrdup(p));
repo->name = repo->url;
repo->path = xstrdup(path);
p = (pwd && pwd->pw_gecos) ? strchr(pwd->pw_gecos, ',') : NULL;
if (p)
*p = '\0';
repo->owner = (pwd ? xstrdup(pwd->pw_gecos ? pwd->pw_gecos : pwd->pw_name) : "");
p = fmt("%s/description", path);
if (!stat(p, &st))
readfile(p, &repo->desc, &size);