summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2009-08-24 08:55:01 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2009-08-24 08:55:01 (UTC)
commit5ca8df0a3d75ba1ca5af28872977f7714b66ff37 (patch) (unidiff)
treef838611403f384c92fefc3eef69dc75507bb2e9d
parent3548320004512276ea0bbfe80b2ae9b5cc7e2c76 (diff)
downloadcgit-5ca8df0a3d75ba1ca5af28872977f7714b66ff37.zip
cgit-5ca8df0a3d75ba1ca5af28872977f7714b66ff37.tar.gz
cgit-5ca8df0a3d75ba1ca5af28872977f7714b66ff37.tar.bz2
cgit.c: generate repo.snapshots in print_repo()
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 8ab6889..b0e202e 100644
--- a/cgit.c
+++ b/cgit.c
@@ -436,8 +436,28 @@ int cmp_repos(const void *a, const void *b)
436 const struct cgit_repo *ra = a, *rb = b; 436 const struct cgit_repo *ra = a, *rb = b;
437 return strcmp(ra->url, rb->url); 437 return strcmp(ra->url, rb->url);
438} 438}
439 439
440char *build_snapshot_setting(int bitmap)
441{
442 const struct cgit_snapshot_format *f;
443 char *result = xstrdup("");
444 char *tmp;
445 int len;
446
447 for (f = cgit_snapshot_formats; f->suffix; f++) {
448 if (f->bit & bitmap) {
449 tmp = result;
450 result = xstrdup(fmt("%s%s ", tmp, f->suffix));
451 free(tmp);
452 }
453 }
454 len = strlen(result);
455 if (len)
456 result[len - 1] = '\0';
457 return result;
458}
459
440void print_repo(FILE *f, struct cgit_repo *repo) 460void print_repo(FILE *f, struct cgit_repo *repo)
441{ 461{
442 fprintf(f, "repo.url=%s\n", repo->url); 462 fprintf(f, "repo.url=%s\n", repo->url);
443 fprintf(f, "repo.name=%s\n", repo->name); 463 fprintf(f, "repo.name=%s\n", repo->name);
@@ -465,8 +485,13 @@ void print_repo(FILE *f, struct cgit_repo *repo)
465 if (repo->commit_filter && repo->commit_filter != ctx.cfg.commit_filter) 485 if (repo->commit_filter && repo->commit_filter != ctx.cfg.commit_filter)
466 fprintf(f, "repo.commit-filter=%s\n", repo->commit_filter->cmd); 486 fprintf(f, "repo.commit-filter=%s\n", repo->commit_filter->cmd);
467 if (repo->source_filter && repo->source_filter != ctx.cfg.source_filter) 487 if (repo->source_filter && repo->source_filter != ctx.cfg.source_filter)
468 fprintf(f, "repo.source-filter=%s\n", repo->source_filter->cmd); 488 fprintf(f, "repo.source-filter=%s\n", repo->source_filter->cmd);
489 if (repo->snapshots != ctx.cfg.snapshots) {
490 char *tmp = build_snapshot_setting(repo->snapshots);
491 fprintf(f, "repo.snapshots=%s\n", tmp);
492 free(tmp);
493 }
469 fprintf(f, "\n"); 494 fprintf(f, "\n");
470} 495}
471 496
472void print_repolist(FILE *f, struct cgit_repolist *list, int start) 497void print_repolist(FILE *f, struct cgit_repolist *list, int start)