feat(cgit-taz): Patch cgit to construct monorepo URLs
Effectively dropping /depot/ from all URLs.
This commit is contained in:
parent
b1be226626
commit
de309848eb
2 changed files with 51 additions and 1 deletions
43
services/cgit-taz/cgit_depot_url.patch
Normal file
43
services/cgit-taz/cgit_depot_url.patch
Normal 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);
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue