diff options
-rw-r--r-- | cgit.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -437,6 +437,26 @@ int cmp_repos(const void *a, const void *b) | |||
437 | return strcmp(ra->url, rb->url); | 437 | return strcmp(ra->url, rb->url); |
438 | } | 438 | } |
439 | 439 | ||
440 | char *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 | |||
440 | void print_repo(FILE *f, struct cgit_repo *repo) | 460 | void 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); |
@@ -466,6 +486,11 @@ void print_repo(FILE *f, struct cgit_repo *repo) | |||
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 | ||