about summary refs log tree commit diff
path: root/cgit.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cgit.c36
-rw-r--r--cgit.css75
2 files changed, 68 insertions, 43 deletions
diff --git a/cgit.c b/cgit.c
index 34e590e..c86d290 100644
--- a/cgit.c
+++ b/cgit.c
@@ -8,9 +8,6 @@
 
 #include "cgit.h"
 
-const char cgit_version[] = CGIT_VERSION;
-
-
 static int cgit_prepare_cache(struct cacheitem *item)
 {
 	if (!cgit_repo && cgit_query_repo) {
@@ -29,13 +26,15 @@ static int cgit_prepare_cache(struct cacheitem *item)
 	}
 
 	if (!cgit_cmd) {
-		item->name = xstrdup(fmt("%s/%s/index.html", cgit_cache_root,
-			   cache_safe_filename(cgit_repo->url)));
+		item->name = xstrdup(fmt("%s/%s/index.%s.html", cgit_cache_root,
+					 cache_safe_filename(cgit_repo->url),
+					 cache_safe_filename(cgit_querystring)));
 		item->ttl = cgit_cache_repo_ttl;
 	} else {
 		item->name = xstrdup(fmt("%s/%s/%s/%s.html", cgit_cache_root,
-			   cache_safe_filename(cgit_repo->url), cgit_query_page,
-			   cache_safe_filename(cgit_querystring)));
+					 cache_safe_filename(cgit_repo->url),
+					 cgit_query_page,
+					 cache_safe_filename(cgit_querystring)));
 		if (cgit_query_has_symref)
 			item->ttl = cgit_cache_dynamic_ttl;
 		else if (cgit_query_has_sha1)
@@ -69,8 +68,10 @@ static void cgit_print_repo_page(struct cacheitem *item)
 	setenv("GIT_DIR", cgit_repo->path, 1);
 
 	if ((cgit_cmd == CMD_SNAPSHOT) && cgit_repo->snapshots) {
-		cgit_print_snapshot(item, cgit_query_sha1, "zip",
-				    cgit_repo->url, cgit_query_name);
+		cgit_print_snapshot(item, cgit_query_head, cgit_query_sha1,
+				    cgit_repobasename(cgit_repo->url),
+				    cgit_query_path,
+				    cgit_repo->snapshots );
 		return;
 	}
 
@@ -92,22 +93,21 @@ static void cgit_print_repo_page(struct cacheitem *item)
 
 	switch(cgit_cmd) {
 	case CMD_LOG:
-		cgit_print_log(cgit_query_head, cgit_query_ofs,
+		cgit_print_log(cgit_query_sha1, cgit_query_ofs,
 			       cgit_max_commit_count, cgit_query_search,
 			       cgit_query_path, 1);
 		break;
 	case CMD_TREE:
-		cgit_print_tree(cgit_query_head, cgit_query_sha1, cgit_query_path);
+		cgit_print_tree(cgit_query_sha1, cgit_query_path);
 		break;
 	case CMD_COMMIT:
-		cgit_print_commit(cgit_query_head);
+		cgit_print_commit(cgit_query_sha1);
 		break;
-	case CMD_VIEW:
-		cgit_print_view(cgit_query_sha1, cgit_query_path);
+	case CMD_TAG:
+		cgit_print_tag(cgit_query_sha1);
 		break;
 	case CMD_DIFF:
-		cgit_print_diff(cgit_query_head, cgit_query_sha1, cgit_query_sha2,
-				cgit_query_path);
+		cgit_print_diff(cgit_query_sha1, cgit_query_sha2);
 		break;
 	default:
 		cgit_print_error("Invalid request");
@@ -227,6 +227,7 @@ static void cgit_parse_args(int argc, const char **argv)
 int main(int argc, const char **argv)
 {
 	struct cacheitem item;
+	const char *cgit_config_env = getenv("CGIT_CONFIG");
 
 	htmlfd = STDOUT_FILENO;
 	item.st.st_mtime = time(NULL);
@@ -234,7 +235,8 @@ int main(int argc, const char **argv)
 	cgit_repolist.count = 0;
 	cgit_repolist.repos = NULL;
 
-	cgit_read_config(CGIT_CONFIG, cgit_global_config_cb);
+	cgit_read_config(cgit_config_env ? cgit_config_env : CGIT_CONFIG,
+			 cgit_global_config_cb);
 	cgit_repo = NULL;
 	if (getenv("SCRIPT_NAME"))
 		cgit_script_name = xstrdup(getenv("SCRIPT_NAME"));
diff --git a/cgit.css b/cgit.css
index 8977533..54bbfcc 100644
--- a/cgit.css
+++ b/cgit.css
@@ -1,6 +1,7 @@
 body {
-	font-family: arial;
+	font-family: arial, sans-serif;
 	font-size: 11pt;
+	color: black;
 	background: white;
 }
 
@@ -94,6 +95,14 @@ td#header {
 	vertical-align: text-bottom;
 }
 
+td#header a {
+	color: #666;
+}
+
+td#header a:hoved {
+	text-decoration: underline;
+}
+
 td#logo {
 	text-align: right;
 	vertical-align: middle;
@@ -114,15 +123,19 @@ td#crumb {
 
 td#crumb a {
 	color: #ccc;
+	background-color: #666;
+	padding: 0em 0.5em 0em 0.5em;
 }
 
 td#crumb a:hover {
-	color: #eee;
+	color: #666;
+	background-color: #ccc;
+	text-decoration: none;
 }
 
 td#search {
 	text-align: right;
-	vertical-align: center;
+	vertical-align: middle;
 	padding-right: 0.5em;
 }
 
@@ -171,35 +184,47 @@ div.error {
 	margin: 1em 2em;
 }
 
-td.ls-blob, td.ls-dir, td.ls-mod {
+a.ls-blob, a.ls-dir, a.ls-mod {
 	font-family: monospace;
 }
 
-div.ls-dir a {
-	font-weight: bold;
+td.ls-size {
+	text-align: right;
 }
 
-th.filesize, td.filesize {
-	text-align: right;
+td.ls-size {
+	font-family: monospace;
 }
 
-td.filesize {
+td.ls-mode {
 	font-family: monospace;
 }
 
-td.links {
-	font-size: 80%;
-	padding-left: 2em;
+table.blob {
+	margin-top: 0.5em;
+	border-top: solid 1px black;
 }
 
-td.filemode {
-	font-family: monospace;
+table.blob td.no {
+	border-right: solid 1px black;
+	color: black;
+	background-color: #eee;
+	text-align: right;
+}
+
+table.blob td.no a {
+	color: black;
 }
 
-td.blob {
+table.blob td.no a:hover {
+	color: black;
+	text-decoration: none;
+}
+
+table.blob td.txt {
 	white-space: pre;
 	font-family: monospace;
-	background-color: white;
+	padding-left: 0.5em;
 }
 
 table.nowrap td {
@@ -215,6 +240,7 @@ table.commit-info th {
 	text-align: left;
 	font-weight: normal;
 	padding: 0.1em 1em 0.1em 0.1em;
+	vertical-align: top;
 }
 
 table.commit-info td {
@@ -287,7 +313,7 @@ table.diffstat td.upd a {
 
 table.diffstat td.graph {
 	width: 75%;
-	vertical-align: center;
+	vertical-align: middle;
 }
 
 table.diffstat td.graph table {
@@ -308,10 +334,6 @@ table.diffstat td.graph td.rem {
 	background-color: #c55;
 }
 
-table.diffstat td.graph td.none {
-	background-color: none;
-}
-
 div.diffstat-summary {
 	color: #888;
 	padding-top: 0.5em;
@@ -340,7 +362,7 @@ table.diff td div.del {
 }
 
 .sha1 {
-	font-family: courier;
+	font-family: monospace;
 	font-size: 90%;
 }
 
@@ -359,16 +381,17 @@ table.list td.repogroup {
 
 a.button {
 	font-size: 80%;
-	color: #333;
-	background-color: #ccc;
-	border: solid 1px #999;
+	color: #aaa;
+	background-color: #eee;
+	border: solid 1px #aaa;
 	padding: 0em 0.5em;
 	margin: 0.1em 0.25em;
 }
 
 a.button:hover {
 	text-decoration: none;
-	background-color: #eee;
+	color: #333;
+	background-color: #ccc;
 }
 
 a.primary {