diff options
author | Lars Hjemli <hjemli@gmail.com> | 2009-08-24 10:55:01 +0200 |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2009-08-24 10:55:01 +0200 |
commit | 5ca8df0a3d75ba1ca5af28872977f7714b66ff37 (patch) | |
tree | f838611403f384c92fefc3eef69dc75507bb2e9d | |
parent | 3548320004512276ea0bbfe80b2ae9b5cc7e2c76 (diff) |
cgit.c: generate repo.snapshots in print_repo()
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cgit.c | 25 |
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 @@ -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"); } |