diff options
Diffstat (limited to 'infra/libkookie/overlays/patches/cgit/0001-recursive-readme.patch')
-rw-r--r-- | infra/libkookie/overlays/patches/cgit/0001-recursive-readme.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/infra/libkookie/overlays/patches/cgit/0001-recursive-readme.patch b/infra/libkookie/overlays/patches/cgit/0001-recursive-readme.patch new file mode 100644 index 000000000000..417536644727 --- /dev/null +++ b/infra/libkookie/overlays/patches/cgit/0001-recursive-readme.patch @@ -0,0 +1,48 @@ +From 0294eec9da79ba3bebf351c22d04c67b22dc920f Mon Sep 17 00:00:00 2001 +From: Vincent Ambo <tazjin@google.com> +Date: Sat, 21 Dec 2019 22:58:19 +0000 +Subject: feat(third_party/cgit): Use README at each subtree + +This means that individual subtrees of a repository will also have +their READMEs rendered on the about page, for example: + + /foo/bar/README.md + +Will render on: + + /about/foo/bar/ + +This is useful for monorepo setups in which subtrees represent +individual projects. +--- + third_party/cgit/ui-summary.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +(limited to 'third_party/cgit') + +diff --git a/ui-summary.c b/ui-summary.c +index 947812a81..d1bb6a59f 100644 +--- a/ui-summary.c ++++ b/ui-summary.c +@@ -128,6 +128,18 @@ void cgit_print_repo_readme(const char *path) + goto done; + } + ++ /* Determine which file to serve by checking whether the given filename is ++ * already a valid file and otherwise appending the expected file name of ++ * the readme. ++ * ++ * If neither yield a valid file, the user gets a blank page. Could probably ++ * do with an error message in between there, but whatever. ++ */ ++ if (path && ref && !cgit_ref_path_exists(filename, ref, 1)) { ++ filename = fmtalloc("%s/%s", path, ctx.repo->readme.items[0].string); ++ free_filename = 1; ++ } ++ + /* Print the calculated readme, either from the git repo or from the + * filesystem, while applying the about-filter. + */ +-- +cgit v1.2.3 + |