feat(cgit-taz): Patch cgit to construct monorepo URLs

Effectively dropping /depot/ from all URLs.
This commit is contained in:
Vincent Ambo 2019-12-20 17:28:35 +00:00
parent b1be226626
commit de309848eb
2 changed files with 51 additions and 1 deletions

View file

@ -0,0 +1,43 @@
diff --git a/ui-shared.c b/ui-shared.c
index 739505a..5c3e7bc 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -95,29 +95,23 @@ const char *cgit_loginurl(void)
char *cgit_repourl(const char *reponame)
{
- if (ctx.cfg.virtual_root)
- return fmtalloc("%s%s/", ctx.cfg.virtual_root, reponame);
- else
- return fmtalloc("?r=%s", reponame);
+ // my cgit instance *only* serves the depot, hence that's the only value ever
+ // needed.
+ return "/";
}
char *cgit_fileurl(const char *reponame, const char *pagename,
const char *filename, const char *query)
{
struct strbuf sb = STRBUF_INIT;
- char *delim;
- if (ctx.cfg.virtual_root) {
- strbuf_addf(&sb, "%s%s/%s/%s", ctx.cfg.virtual_root, reponame,
- pagename, (filename ? filename:""));
- delim = "?";
- } else {
- strbuf_addf(&sb, "?url=%s/%s/%s", reponame, pagename,
- (filename ? filename : ""));
- delim = "&";
+ strbuf_addf(&sb, "%s%s/%s", ctx.cfg.virtual_root,
+ pagename, (filename ? filename:""));
+
+ if (query) {
+ strbuf_addf(&sb, "%s%s", "?", query);
}
- if (query)
- strbuf_addf(&sb, "%s%s", delim, query);
+
return strbuf_detach(&sb, NULL);
}

View file

@ -22,9 +22,16 @@ let
repo.owner=tazjin <tazjin@google.com>
repo.clone-url=https://git.tazj.in ssh://source.developers.google.com:2022/p/tazjins-infrastructure/r/depot
'';
# Patched version of cgit that builds repository URLs correctly
# (since only one repository is served)
monocgit = cgit.overrideAttrs(old: {
patches = old.patches ++ [ ./cgit_depot_url.patch ];
});
thttpdConfig = writeText "thttpd.conf" ''
port=8080
dir=${cgit}/cgit
dir=${monocgit}/cgit
nochroot
novhost
logfile=/dev/stdout