]> git.cameronkatri.com Git - cgit.git/commitdiff
cgit.c: generate repo.snapshots in print_repo()
authorLars Hjemli <hjemli@gmail.com>
Mon, 24 Aug 2009 08:55:01 +0000 (10:55 +0200)
committerLars Hjemli <hjemli@gmail.com>
Mon, 24 Aug 2009 08:55:01 +0000 (10:55 +0200)
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
cgit.c

diff --git a/cgit.c b/cgit.c
index 8ab688994889814e520304b3478a857bcc8b2011..b0e202e723a78e0517bd35ed25efbf365f3212bc 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -437,6 +437,26 @@ int cmp_repos(const void *a, const void *b)
        return strcmp(ra->url, rb->url);
 }
 
+char *build_snapshot_setting(int bitmap)
+{
+       const struct cgit_snapshot_format *f;
+       char *result = xstrdup("");
+       char *tmp;
+       int len;
+
+       for (f = cgit_snapshot_formats; f->suffix; f++) {
+               if (f->bit & bitmap) {
+                       tmp = result;
+                       result = xstrdup(fmt("%s%s ", tmp, f->suffix));
+                       free(tmp);
+               }
+       }
+       len = strlen(result);
+       if (len)
+               result[len - 1] = '\0';
+       return result;
+}
+
 void print_repo(FILE *f, struct cgit_repo *repo)
 {
        fprintf(f, "repo.url=%s\n", repo->url);
@@ -466,6 +486,11 @@ void print_repo(FILE *f, struct cgit_repo *repo)
                fprintf(f, "repo.commit-filter=%s\n", repo->commit_filter->cmd);
        if (repo->source_filter && repo->source_filter != ctx.cfg.source_filter)
                fprintf(f, "repo.source-filter=%s\n", repo->source_filter->cmd);
+       if (repo->snapshots != ctx.cfg.snapshots) {
+               char *tmp = build_snapshot_setting(repo->snapshots);
+               fprintf(f, "repo.snapshots=%s\n", tmp);
+               free(tmp);
+       }
        fprintf(f, "\n");
 }