+my $project = "";
+my $action = "";
+my $hash = "";
+my $hash_parent = "";
+my $view_back;
+my $myself = $cgi->url(-absolute => 1);
+my $url_parm = $cgi->url(-path => 1);
+$url_parm =~ s/.*$myself//;
+
+# get values from url
+if ($url_parm =~ m#/(.+)/commit/([0-9a-fA-F]+)$#) {
+ $project = $1;
+ $action = "commit";
+ $hash = $2;
+} elsif ($url_parm =~ m#/(.+)/commitdiff/([0-9a-fA-F]+)$#) {
+ $project = $1;
+ $action = "commitdiff";
+ $hash = $2;
+} elsif ($url_parm =~ m#/(.+)/blobdiff/([0-9a-fA-F]+)/([0-9a-fA-F]+)$#) {
+ $project = $1;
+ $action = "blobdiff";
+ $hash = $2;
+ $hash_parent = $3;
+} elsif ($url_parm =~ m#/(.+)/blob/([0-9a-fA-F]+)$#) {
+ $project = $1;
+ $action = "blob";
+ $hash = $2;
+} elsif ($url_parm =~ m#/(.+)/tree/([0-9a-fA-F]+)$#) {
+ $project = $1;
+ $action = "tree";
+ $hash = $2;
+} elsif ($url_parm =~ m#/(.+)/log/([0-9]+)$#) {
+ $project = $1;
+ $action = "log";
+ $view_back = $2;
+} elsif ($url_parm =~ m#/(.+)/log$#) {
+ $project = $1;
+ $action = "log";
+ $view_back = 1;
+} elsif ($url_parm =~ m#/(.+)/rss$#) {
+ $project = $1;
+ $action = "rss";
+ $view_back = 1;
+} elsif ($url_parm =~ m#/git-logo.png$#) {
+ print $cgi->header(-type => 'image/png');
+ print "\211\120\116\107\015\012\032\012\000\000\000\015\111\110\104\122".
+ "\000\000\000\110\000\000\000\033\004\003\000\000\000\055\331\324".
+ "\055\000\000\000\030\120\114\124\105\377\377\377\140\140\135\260".
+ "\257\252\000\200\000\316\315\307\300\000\000\350\350\346\367\367".
+ "\366\225\014\247\107\000\000\000\163\111\104\101\124\050\317\143".
+ "\110\147\040\004\112\134\030\012\010\052\142\123\141\040\002\010".
+ "\015\151\105\254\241\241\001\060\014\223\140\066\046\122\221\261".
+ "\001\021\326\341\125\144\154\154\314\154\154\014\242\014\160\052".
+ "\142\006\052\301\142\035\263\001\002\123\244\010\350\000\003\030".
+ "\046\126\021\324\341\040\227\033\340\264\016\065\044\161\051\202".
+ "\231\060\270\223\012\021\271\105\210\301\215\240\242\104\041\006".
+ "\047\101\202\100\205\301\105\211\040\160\001\000\244\075\041\305".
+ "\022\034\232\376\000\000\000\000\111\105\116\104\256\102\140\202";
+ exit;
+} elsif ($url_parm =~ m#/(.+)$#) {
+ $project = $1;
+ $action = "log";
+ $view_back = 1;
+}