2 # (c) Petr Baudis <pasky@suse.cz>
16 my $pname = $cgi->param('p')||'';
17 my $ctags = $cgi->param('t')||'';
20 my $proj = Girocco
::Project
->load($pname);
22 print $cgi->header(-status
=>404);
23 print "Project $pname does not exist.";
27 if ($ctags =~ /[^ a-zA-Z0-9:.+#_-]/) {
28 print $cgi->header(-status
=>403);
29 print "Content tag(s) '$ctags' contain evil characters.";
33 foreach my $ctag (split(/ /, $ctags)) {
34 # Locking is not important
36 open CT
, '<', $proj->{path
}."/ctags/$ctag" and $val = <CT
> and close CT
;
38 open CT
, '>', $proj->{path
}."/ctags/$ctag" and print CT
($val+1)."\n" and close CT
;
41 print $cgi->header(-status
=>303, -location
=>"$@{[url_path(Girocco::Config::gitweburl)]}/$pname.git");