[PATCH] make cgit honour gitweb.description

William Bell william.bell at frog.za.net
Tue Sep 18 06:16:32 CEST 2012


BTW. The patch will only work if the enable_gitweb_owner is set (which 
it is in my case), we would want to read the description regardless of 
this setting. The name of the function git_owner_config should probably 
also get renamed.

Regards
On 17/09/2012 16:51, William Bell wrote:
> From 0c76f92d0ce965276551f88898d4c1ec6f6ec3ed Mon Sep 17 00:00:00 2001
> From: William Bell <william.bell at frog.za.net>
> Date: Mon, 17 Sep 2012 16:40:56 +0200
> Subject: [PATCH] make cgit honour gitweb.description
>
> ---
>  scan-tree.c |   19 ++++++++++++++-----
>  1 file changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/scan-tree.c b/scan-tree.c
> index 378d795..ab85610 100644
> --- a/scan-tree.c
> +++ b/scan-tree.c
> @@ -1,5 +1,5 @@
>  /* scan-tree.c
> - *
> + *
>   * Copyright (C) 2008-2009 Lars Hjemli
>   * Copyright (C) 2010 Jason A. Donenfeld <Jason at zx2c4.com>
>   *
> @@ -48,6 +48,7 @@ static int is_git_dir(const char *path)
>  struct cgit_repo *repo;
>  repo_config_fn config_fn;
>  char *owner;
> +char *description;
>
>  static void repo_config(const char *name, const char *value)
>  {
> @@ -58,6 +59,8 @@ static int git_owner_config(const char *key, const 
> char *value, void *cb)
>  {
>      if (!strcmp(key, "gitweb.owner"))
>          owner = xstrdup(value);
> +    else if (!strcmp(key, "gitweb.description"))
> +        description = xstrdup(value);
>      return 0;
>  }
>
> @@ -89,6 +92,7 @@ static void add_repo(const char *base, const char 
> *path, repo_config_fn fn)
>          return;
>
>      owner = NULL;
> +    description = NULL;
>      if (ctx.cfg.enable_gitweb_owner)
>          git_config_from_file(git_owner_config, fmt("%s/config", 
> path), NULL);
>      if (base == path)
> @@ -118,9 +122,14 @@ static void add_repo(const char *base, const char 
> *path, repo_config_fn fn)
>      }
>      repo->owner = owner;
>
> -    p = fmt("%s/description", path);
> -    if (!stat(p, &st))
> -        readfile(p, &repo->desc, &size);
> +    if (!description) {
> +        p = fmt("%s/description", path);
> +        if (!stat(p, &st))
> +            readfile(p, &repo->desc, &size);
> +    }
> +    else {
> +        repo->desc = description;
> +    }
>
>      if (!repo->readme) {
>          p = fmt("%s/README.html", path);
> @@ -216,7 +225,7 @@ void scan_projects(const char *path, const char 
> *projectsfile, repo_config_fn fn
>      char line[MAX_PATH * 2], *z;
>      FILE *projects;
>      int err;
> -
> +
>      projects = fopen(projectsfile, "r");
>      if (!projects) {
>          fprintf(stderr, "Error opening projectsfile %s: %s (%d)\n",





More information about the CGit mailing list