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