X-Git-Url: https://git.ladys.computer/Gitweb/blobdiff_plain/dfdf0b0fd5969cf3a58b35594431f741a40edc914c5a4e98cbcfbf249195bec8..0d23ebbb3994a16abcb3ef3e20e4dabf833feaeabd1f9b274aa9f6c646a5bbb3:/gitweb.pl diff --git a/gitweb.pl b/gitweb.pl index bac325d..e0c06a8 100755 --- a/gitweb.pl +++ b/gitweb.pl @@ -2,7 +2,7 @@ # gitweb.pl - simple web interface to track changes in git repositories # -# Version 027 +# Version 041 # # (C) 2005, Kay Sievers # (C) 2005, Christian Gierke @@ -16,81 +16,29 @@ use CGI::Carp qw(fatalsToBrowser); my $cgi = new CGI; -my $projectroot = "/home/kay/public_html"; -my $defaultprojects = "."; +my $projectroot = "/"; +my $defaultprojects = "home/kay/public_html"; my $gitbin = "/home/kay/bin/git"; my $gittmp = "/tmp"; my $my_url = $cgi->url(); my $my_uri = $cgi->url(-absolute => 1); -my $my_url_parm = $cgi->url(-path => 1); -$my_url_parm =~ s/.*$my_uri//; -my $project = ""; -my $action = ""; -my $hash = ""; -my $hash_parent = ""; -my $view_back = 1; - -# get values from url -if ($my_url_parm =~ m#/(.+)/commit/([0-9a-fA-F]+)$#) { - $project = $1; - $action = "commit"; - $hash = $2; -} elsif ($my_url_parm =~ m#/(.+)/commitdiff/([0-9a-fA-F]+)$#) { - $project = $1; - $action = "commitdiff"; - $hash = $2; -} elsif ($my_url_parm =~ m#/(.+)/blobdiff/([0-9a-fA-F]+)/([0-9a-fA-F]+)$#) { - $project = $1; - $action = "blobdiff"; - $hash = $2; - $hash_parent = $3; -} elsif ($my_url_parm =~ m#/(.+)/blob/([0-9a-fA-F]+)$#) { - $project = $1; - $action = "blob"; - $hash = $2; -} elsif ($my_url_parm =~ m#/(.+)/tree/([0-9a-fA-F]+)$#) { - $project = $1; - $action = "tree"; - $hash = $2; -} elsif ($my_url_parm =~ m#/(.+)/log/([0-9]+)$#) { - $project = $1; - $action = "log"; - $view_back = $2; -} elsif ($my_url_parm =~ m#/(.+)/log$#) { - $project = $1; - $action = "log"; - $view_back = 1; -} elsif ($my_url_parm =~ m#/(.+)/rss$#) { - $project = $1; - $action = "rss"; - $view_back = 1; -} elsif ($my_url_parm =~ m#/git-logo.png$#) { - print $cgi->header(-type => 'image/png', -expires => '+1d'); - 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 ($my_url_parm =~ m#/(.+)$#) { - $project = $1; - $action = "log"; - $view_back = 1; -} +my $project = $cgi->param('p'); +my $action = $cgi->param('a'); +my $hash = $cgi->param('h'); +my $hash_parent = $cgi->param('hp'); +my $time_back = $cgi->param('t') || 1; +$ENV{'SHA1_FILE_DIRECTORY'} = "$projectroot/$project/.git/objects"; # sanitize input -$project =~ s#\/\.+##g; - -$ENV{'SHA1_FILE_DIRECTORY'} = "$projectroot/$project/.git/objects"; +$action =~ s/[^0-9a-zA-Z\.\-]//g; +$project =~ s/\/\.//g; +$project =~ s/^\/+//g; +$project =~ s/\/+$//g; +$project =~ s/|//g; +$hash =~ s/[^0-9a-fA-F]//g; +$hash_parent =~ s/[^0-9a-fA-F]//g; +$time_back =~ s/[^0-9]+//g; sub git_header_html { print $cgi->header(-type => 'text/html', -charset => 'utf-8'); @@ -99,11 +47,11 @@ print < git - $project $action - +