add $STAGIT_BASEURL environment variable to make Atom links absolute
authorHiltjo Posthuma <hiltjo@codemadness.org>
Fri, 5 Mar 2021 10:51:21 +0000 (11:51 +0100)
committerHiltjo Posthuma <hiltjo@codemadness.org>
Fri, 5 Mar 2021 10:51:21 +0000 (11:51 +0100)
With feedback from adc, thanks!

stagit.1
stagit.c

index f5adaf26e4514f58034537d39cdb2b1f25c9d187..78411cbb3e5a06926f77f3baa763ffdfca551eb1 100644 (file)
--- a/stagit.1
+++ b/stagit.1
@@ -1,4 +1,4 @@
-.Dd July 19, 2020
+.Dd March 4, 2021
 .Dt STAGIT 1
 .Os
 .Sh NAME
@@ -103,6 +103,14 @@ favicon image.
 .It style.css
 CSS stylesheet.
 .El
+.Sh ENVIRONMENT
+.Bl -tag -width Ds
+.It Ev STAGIT_BASEURL
+Base URL to make links in atom.xml absolute.
+For example: STAGIT_BASE_URL="https://git.codemadness.org/stagit/".
+.El
+.Sh EXIT STATUS
+.Ex -std
 .Sh SEE ALSO
 .Xr stagit-index 1
 .Sh AUTHORS
index 98035e9c24012a2f4a0b03581fb67e2e0ea63051..023ae55a32c5582ba75c6145aa44c2f29fa1b99a 100644 (file)
--- a/stagit.c
+++ b/stagit.c
@@ -58,6 +58,7 @@ struct referenceinfo {
 
 static git_repository *repo;
 
+static const char *baseurl = ""; /* base URL to make absolute RSS/Atom URI */
 static const char *relpath = "";
 static const char *repodir;
 
@@ -807,8 +808,8 @@ printcommitatom(FILE *fp, struct commitinfo *ci, const char *tag)
                xmlencode(fp, ci->summary, strlen(ci->summary));
                fputs("</title>\n", fp);
        }
-       fprintf(fp, "<link rel=\"alternate\" type=\"text/html\" href=\"commit/%s.html\" />\n",
-               ci->oid);
+       fprintf(fp, "<link rel=\"alternate\" type=\"text/html\" href=\"%scommit/%s.html\" />\n",
+               baseurl, ci->oid);
 
        if (ci->author) {
                fputs("<author>\n<name>", fp);
@@ -1184,6 +1185,9 @@ main(int argc, char *argv[])
        }
 #endif
 
+       if ((p = getenv("STAGIT_BASEURL")))
+               baseurl = p;
+
        if (git_repository_open_ext(&repo, repodir,
                GIT_REPOSITORY_OPEN_NO_SEARCH, NULL) < 0) {
                fprintf(stderr, "%s: cannot open repository\n", argv[0]);