"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Mark Jamsek <mark@jamsek.com>
Subject:
Re: gotwebd: bubble up got_get_repo_tags
To:
Omar Polo <op@omarpolo.com>
Cc:
gameoftrees@openbsd.org
Date:
Fri, 13 Jan 2023 18:09:12 +1100

Download raw body.

Thread
On 23-01-12 12:26PM, Omar Polo wrote:
> This bubbles up the call to got_get_repo_tags from gotweb_render_tags
> to its caller, gotweb_process_request and gotweb_render_summary.  It
> helps simplifying gotweb_render_summary and making it easier to
> templateify, but also helps in untangling a bit the code.
> 
> At this point gotweb_render_tags becomes just a wrapper to
> gotweb_render_tags_tmpl so switch completely to it.
> 
> It may help in revieving the diff remembering that
> gotweb_render_summary calls gotweb_render_briefs before rendering the
> tags, where qs->action is assigned to BRIEFS.
> 
> ok?

ok (notwithstanding the copypasta you noted in your follow-up)

> diff /home/op/w/got
> commit - 3ab2c91424750aef75f929402e6a7581a704f36d
> path + /home/op/w/got
> blob - df7d335b7261e2e7472a0004b490f669e3a56351
> file + gotwebd/gotweb.c
> --- gotwebd/gotweb.c
> +++ gotwebd/gotweb.c
> @@ -95,7 +95,6 @@ static const struct got_error *gotweb_render_tags(stru
>      const char *, int);
>  static const struct got_error *gotweb_render_blame(struct request *);
>  static const struct got_error *gotweb_render_summary(struct request *);
> -static const struct got_error *gotweb_render_tags(struct request *);
>  
>  static void gotweb_free_querystring(struct querystring *);
>  static void gotweb_free_repo_dir(struct repo_dir *);
> @@ -310,11 +309,13 @@ render:
>  			goto done;
>  		break;
>  	case TAGS:
> -		error = gotweb_render_tags(c);
> +		error = got_get_repo_tags(c, srv->max_commits_display);
>  		if (error) {
>  			log_warnx("%s: %s", __func__, error->msg);
> -			goto err;
> +			goto done;
>  		}
> +		if (gotweb_render_tags(c->tp) == -1)
> +			goto done;
>  		break;
>  	case TREE:
>  		error = got_get_repo_commits(c, 1);
> @@ -1016,6 +1017,7 @@ gotweb_render_summary(struct request *c)
>  	const struct got_error *error = NULL;
>  	struct got_reflist_head refs;
>  	struct transport *t = c->t;
> +	struct querystring *qs = t->qs;
>  	struct got_repository *repo = t->repo;
>  	struct server *srv = c->srv;
>  	int r;
> @@ -1073,41 +1075,20 @@ gotweb_render_summary(struct request *c)
>  	if (gotweb_render_briefs(c->tp) == -1)
>  		goto done;
>  
> -	error = gotweb_render_tags(c);
> -	if (error) {
> -		log_warnx("%s: %s", __func__, error->msg);
> +	qs->action = TAGS;
> +	error = got_get_repo_tags(c, D_MAXSLCOMMDISP);
> +	if (error)
>  		goto done;
> -	}
>  
> +	if (gotweb_render_tags(c->tp) == -1)
> +		goto done;
> +
>  	gotweb_render_branches(c->tp, &refs);
>  done:
>  	got_ref_list_free(&refs);
>  	return error;
>  }
>  
> -static const struct got_error *
> -gotweb_render_tags(struct request *c)
> -{
> -	const struct got_error *error = NULL;
> -	struct server *srv = c->srv;
> -	struct transport *t = c->t;
> -	struct querystring *qs = t->qs;
> -
> -	if (qs->action == BRIEFS) {
> -		qs->action = TAGS;
> -		error = got_get_repo_tags(c, D_MAXSLCOMMDISP);
> -	} else
> -		error = got_get_repo_tags(c, srv->max_commits_display);
> -	if (error)
> -		goto done;
> -
> -	if (gotweb_render_tags_tmpl(c->tp) == -1)
> -		goto done;
> -
> -done:
> -	return error;
> -}
> -
>  const struct got_error *
>  gotweb_escape_html(char **escaped_html, const char *orig_html)
>  {
> blob - 47eed11a0ded054e1f08fe6bee4bc4b5af4aea0e
> file + gotwebd/gotwebd.h
> --- gotwebd/gotwebd.h
> +++ gotwebd/gotwebd.h
> @@ -470,7 +470,7 @@ int	gotweb_render_tags_tmpl(struct template *);
>  int	gotweb_render_commits(struct template *);
>  int	gotweb_render_blob(struct template *, struct got_blob_object *);
>  int	gotweb_render_tree(struct template *);
> -int	gotweb_render_tags_tmpl(struct template *);
> +int	gotweb_render_tags(struct template *);
>  int	gotweb_render_tag(struct template *);
>  int	gotweb_render_diff(struct template *, FILE *);
>  int	gotweb_render_branches(struct template *, struct got_reflist_head *);
> blob - 6cf6d4d7e32e66e8dbd1cf8b8d9740fec9fe9ef2
> file + gotwebd/pages.tmpl
> --- gotwebd/pages.tmpl
> +++ gotwebd/pages.tmpl
> @@ -577,7 +577,7 @@ gotweb_render_age(struct template *tp, time_t time, in
>  !}
>  {{ end }}
>  
> -{{ define gotweb_render_tags_tmpl(struct template *tp) }}
> +{{ define gotweb_render_tags(struct template *tp) }}
>  {!
>  	struct request		*c = tp->tp_arg;
>  	struct transport	*t = c->t;
> 

-- 
Mark Jamsek <fnc.bsdbox.org>
GPG: F2FF 13DE 6A06 C471 CA80  E6E2 2930 DC66 86EE CF68