]> git.armaanb.net Git - stagit.git/blobdiff - src/stagit-index.c
Write index to index.html instead of stdout
[stagit.git] / src / stagit-index.c
index 2b243ec15660ba042313d4317b2d33810f9300a3..d1c663e2a8c26775a1ff1a369cb29009d30d5d38 100644 (file)
@@ -8,6 +8,8 @@
 
 #include <git2.h>
 
+#include "cp.h"
+
 static git_repository *repo;
 
 static const char *relpath = "";
@@ -61,15 +63,16 @@ printtimeshort(FILE *fp, const git_time *intime)
 }
 
 void
-writeheader(FILE *fp)
+writeheader(char *path)
 {
+       FILE *fp = fopen(path, "w");
        fputs("<!DOCTYPE html>\n"
                "<html>\n<head>\n"
                "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n"
                "<title>", fp);
        xmlencode(fp, description, strlen(description));
        fprintf(fp, "</title>\n<link rel=\"icon\" type=\"image/png\" href=\"%sfavicon.png\" />\n", relpath);
-       fprintf(fp, "<link rel=\"stylesheet\" type=\"text/css\" href=\"%sstyle.css\" />\n", relpath);
+       fprintf(fp, "<link rel=\"stylesheet\" type=\"text/css\" href=\"%sstyle.min.css\" />\n", relpath);
        fputs("</head>\n<body>\n", fp);
        fprintf(fp, "<table>\n<tr><td><img src=\"%slogo.png\" alt=\"\" width=\"32\" height=\"32\" /></td>\n"
                "<td><span class=\"desc\">", relpath);
@@ -80,17 +83,21 @@ writeheader(FILE *fp)
                "<tr><td><b>Name</b></td><td><b>Description</b></td><td><b>Owner</b></td>"
                "<td><b>Last commit</b></td></tr>"
                "</thead><tbody>\n", fp);
+       fclose(fp);
 }
 
 void
-writefooter(FILE *fp)
+writefooter(char *path)
 {
+       FILE *fp = fopen(path, "a");
        fputs("</tbody>\n</table>\n</div>\n</body>\n</html>\n", fp);
+       fclose(fp);
 }
 
 int
-writelog(FILE *fp)
+writelog(char *path)
 {
+       FILE *fp = fopen(path, "a");
        git_commit *commit = NULL;
        const git_signature *author;
        git_revwalk *w = NULL;
@@ -134,6 +141,7 @@ writelog(FILE *fp)
 err:
        git_revwalk_free(w);
        free(stripped_name);
+       fclose(fp);
 
        return ret;
 }
@@ -162,7 +170,7 @@ main(int argc, char *argv[])
                err(1, "pledge");
 #endif
 
-       writeheader(stdout);
+       writeheader("index.html");
 
        for (i = 1; i < argc; i++) {
                repodir = argv[i];
@@ -208,9 +216,14 @@ main(int argc, char *argv[])
                        owner[strcspn(owner, "\n")] = '\0';
                        fclose(fp);
                }
-               writelog(stdout);
+               writelog("index.html");
        }
-       writefooter(stdout);
+       writefooter("index.html");
+
+       /* copy css */
+       char cwd[PATH_MAX];
+       strcpy(cwd, getcwd(cwd, sizeof(cwd)));
+       cp("/usr/local/share/stagit/style.min.css", strcat(cwd, "/style.min.css"));
 
        /* cleanup */
        git_repository_free(repo);