From ae0a642af73350c149f84af1640adf19fd2ee1f3 Mon Sep 17 00:00:00 2001
From: Antonio Ospite <ospite@studenti.unina.it>
Date: Fri, 6 May 2011 16:49:12 +0200
Subject: [PATCH 1/1] Initial import

Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
---
 cgit.openezx.org |  28 ++++++++
 git.openezx.org  | 215 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 243 insertions(+)
 create mode 100644 cgit.openezx.org
 create mode 100644 git.openezx.org

diff --git a/cgit.openezx.org b/cgit.openezx.org
new file mode 100644
index 0000000..8f653e2
--- /dev/null
+++ b/cgit.openezx.org
@@ -0,0 +1,28 @@
+<VirtualHost *:80>
+	ServerName	cgit.openezx.org
+	ServerAlias	cgit.open-ezx.org
+
+	ServerSignature	Off
+
+	Alias /cgit.css /var/www/htdocs/cgit/cgit.css
+	Alias /cgit.png /var/www/htdocs/cgit/cgit.png
+
+	ScriptAlias /cgi-bin/ /var/www/htdocs/cgit/
+
+	DocumentRoot /home/git/repositories
+	<Directory /home/git/repositories>
+		AllowOverride None
+		Options +ExecCGI
+		Order allow,deny
+		Allow from all
+
+		DirectoryIndex /cgi-bin/cgit.cgi
+
+		RewriteEngine on
+		RewriteCond %{REQUEST_FILENAME} !-f
+		RewriteRule ^.*$ /cgi-bin/cgit.cgi/$0 [L,PT]
+	</Directory>
+
+	ErrorLog	/var/log/apache2/cgit.openezx.org/error.log
+	CustomLog	/var/log/apache2/cgit.openezx.org/access.log common
+</VirtualHost>
diff --git a/git.openezx.org b/git.openezx.org
new file mode 100644
index 0000000..4ca696d
--- /dev/null
+++ b/git.openezx.org
@@ -0,0 +1,215 @@
+<VirtualHost *:80>
+	ServerName      git.openezx.org
+
+	ErrorLog	/var/log/apache2/git.openezx.org/error.log
+	CustomLog	/var/log/apache2/git.openezx.org/access.log common
+
+	#
+	# Redirects mapping gitweb -> cgit
+	# Inspired from: http://www.clearchain.com/blog/posts/cgit-upgrade-gitweb-retired
+	#
+	# Gitweb uses get targets seperated by ;
+	#
+	# /?...;...;...
+	#
+	# p = Project
+	# a = Action like (
+	#       blob,
+	#       blob_plain,
+	#       commitdiff,
+	#       commit,
+	#       history,
+	#       log,
+	#       rss|atom,
+	#       shortlog,
+	#       summary,
+	#       tag,
+	#       tree,
+	#       snapshot
+	#     )
+	# h = SHA Hash
+	# hb= SHA Hash Tree Base
+	# f= file/dir
+	# sf= snapshot format
+	#
+	# Cgit uses the following:
+	#
+	# /project/action/?...
+	#
+	# action ( commit, log, diff, tree, tag, patch )
+	#
+	# id = SHA Hash
+	# id2 = SHA Hash
+	# h = head
+	#
+	# Translation rules
+	#
+	# Project is a straight redirect
+	# ---
+	# /?p=(.+)\.git;       http://cgit.openezx.org/$1/
+	#
+	# Action requires a mapping
+	# ---
+	# a=(blob|tree)                 /tree/
+	# a=(blobdiff|commitdiff)       /diff/
+	# a=commit                      /commit/
+	# a=(summary)                   /
+	# a=(shortlog|log|history)      /log/
+	# a=tag                         /tag/
+	# a=blob_plain                  /blob/
+	# a=rss|atom                    /atom
+	#
+	# Targets require mapping
+	# ---
+	# h=(.+)     id=$1
+	# f=(.+)     /$1
+	# hb=(.+)    id2=$1
+	#
+	# Now putting it all together
+	#
+	RewriteEngine On
+	#RewriteLog /tmp/rewrite.log
+	#RewriteLogLevel 5
+
+	# blob
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/blob/(.+)/(.+):/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=blob;h=(.+);hb=(.+);f=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/tree/%5?id=%3;id2=%4 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/blob/(.+):/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=blob;hb=(.+);f=(.+)
+	RewriteRule ^/.*$  http://cgit.openezx.org/%1/tree/%4?id=%3 [R,L,NE]
+
+	RewriteCond %{query_string} p=(.+)(\.git);a=blob;f=(.+);h=(.+);hb=(.+)
+	RewriteRule ^/.*$  http://cgit.openezx.org/%1/tree/%3?id=%4;id2=%5 [R,L,NE]
+
+	RewriteCond %{query_string} p=(.+)(\.git);a=blob;f=(.+);h=(.+)
+	RewriteRule ^/.*$  http://cgit.openezx.org/%1/tree/%3?id=%4 [R,L,NE]
+
+	# tree
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/tree/(.+)/(.+):/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=tree;h=(.+);hb=(.+);f=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/tree/%5?id=%4 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/tree/(.+):/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=tree;hb=(.+);f=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/tree/%4?id=%3 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/tree/(.+)/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=tree;h=(.+);hb=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/tree/?id=%4 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/tree/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=tree;hb=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/tree/?id=%3 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/tree [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=tree
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/tree/? [R,L,NE]
+
+	# commitdiff
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/commitdiff/(.+)/(.+):/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=blobdiff;h=(.+);hp=(.+);hb=(.+);f=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/diff/%6?id2=%4;id=%3;id3=%5 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/commitdiff/(.+)/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=commitdiff;h=(.+);hp=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/diff/?id=%4;id2=%3 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/commitdiff/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=commitdiff;h=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/diff/?id=%3 [R,L,NE]
+
+	# commit
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/commit/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=commit;h=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/commit/?id=%3 [R,L,NE]
+
+	# summary
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/summary [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=summary
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/? [R,L,NE]
+
+	# shortlog 
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/shortlog/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=shortlog;h=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/log/?id=%3 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/shortlog [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=shortlog
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/log/? [R,L,NE]
+
+	# log
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/log/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=log;h=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/log/?id=%3 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/log [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=log
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/log? [R,L,NE]
+
+	# history
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/history/(.+)/(.+):/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=history;h=(.+);hb=(.+);f=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/log/%5?id=%4 [R,L,NE]
+
+	RewriteCond %{query_string} p=(.+)(\.git);a=history;f=(.+);h=(.+);hb=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/log/%3?id=%4;id2=%5 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/history/(.+):/(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/log/%4?id=%3 [R,L,NE]
+
+	RewriteCond %{query_string} p=(.+)(\.git);a=history;f=(.+);h=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/log/%3?id=%4 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/history/(.+)/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=history;h=(.+);hb=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/log/?id=%4 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/history/(.+):/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=history;hb=(.+);f=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/log/%4?id=%3 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/history/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=history;hb=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/log/?id=%3 [R,L,NE]
+
+	# tag
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/tag/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=tag;h=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/tag/?id=%3 [R,L,NE]
+
+	# blob_plain
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/blob_plain/(.+):/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=blob_plain;h=(.+);f=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/plain/%4?id=%3 [R,L,NE]
+
+	RewriteCond %{query_string} p=(.+)(\.git);a=blob_plain;f=(.+);hb=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/plain/%3?id2=%4 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/blob_plain/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=blob_plain;f=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/plain/%3 [R,L,NE]
+
+	# rss|atom
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/(rss|atom)/refs/heads/(.+) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=(rss|atom);h=refsheads/(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/atom?h=%4 [R,L,NE]
+
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/(rss|atom) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=(rss|atom)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/atom? [R,L,NE]
+
+	# snapshot
+	RewriteCond %{REQUEST_URI} /(.+)(\.git)/snapshot/(.+)(\.tar\.gz|\.tar\.bz2) [OR]
+	RewriteCond %{query_string} p=(.+)(\.git);a=snapshot;h=(.+);sf=(.+)
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/snapshot/%3.tar.gz [R,L,NE]
+
+	# Fail safes incase nothing above matches, try at least to put the person in the project
+	RewriteCond %{REQUEST_URI} /(.+)\.git.* [OR]
+	RewriteCond %{query_string} p=(.+)\.git.*
+	RewriteRule ^/.*$ http://cgit.openezx.org/%1/? [R,L,NE]
+
+	# Or else in the root of cgit
+	RewriteRule ^.* http://cgit.openezx.org/ [R,L,NE]
+</VirtualHost>
-- 
2.1.4