added some Perl scripts that do the trick

git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@857 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
Tom Copeland
2002-09-06 20:09:30 +00:00
parent a42e18a802
commit e91ad8e6d5
2 changed files with 71 additions and 0 deletions

17
pmd-web/src/processor.pl Normal file
View File

@ -0,0 +1,17 @@
#!/usr/bin/perl
chdir("/home/groups/p/pm/pmd/cgi-bin");
if (-e "runthis.txt") {
open(FILE,"runthis.txt");
$data=<FILE>;
close(FILE);
`rm -f runthis.txt`;
my ($project,$srcdir,$zilch) = split(":",$data);
`cvs -d:pserver:anonymous\@cvs.${project}.sourceforge.net:/cvsroot/${project} co ${project}`;
$cmd="java -jar pmd-0.9.jar ${project}/${srcdir} html rulesets/unusedcode.xml";
`${cmd} > results.html`;
`rm -rf ${project}`;
} else {
print "nothing to run";
}

54
pmd-web/src/webpmd.pl Normal file
View File

@ -0,0 +1,54 @@
#!/usr/bin/perl
use CGI qw(:standard escapeHTML);
use CGI::Carp qw(fatalsToBrowser);
$query = new CGI();
print $query->header();
sub nopage() {
print $query->p("How'd we get here?");
}
sub printGreeting() {
print start_html("Run PMD on your Sourceforge project");
print p("Want to run PMD on your Sourceforge project? Fill in the blanks and hit go");
print start_form();
print p(), "Project name (i.e., pmd): ", textfield('project');
print p(), "Source directory (i.e., src): ", textfield('srcdir');
my $cachebuster=`date`;
print $query->hidden(-name=>'cachebuster', -value=>${cachebuster});
print p(), submit(-name=>'state',-value=>'writedata');
print end_form();
}
sub writeData() {
my $project = $query->param('project');
my $srcdir = $query->param('srcdir');
`echo "${project}:${srcdir}:" > runthis.txt`;
print start_html(-title=>'PMD Results', -head=>meta({-http_equiv=>'Refresh',-content=>'0;URL=http://pmd.sf.net/cgi-bin/webpmd.pl?state=refreshreport'}));
}
sub refreshReport() {
print start_html(-title=>'PMD Results', -head=>meta({-http_equiv=>'Refresh',-content=>'10;URL=http://pmd.sf.net/cgi-bin/webpmd.pl?state=refreshreport'}));
$query->p("This page will refresh with more information every 10 seconds or so");
open(FILE,"results.html");
print $query->p(<FILE>);
}
$page=param("state") || "default";
%states = (
'default' => \&printGreeting,
'writedata' => \&writeData,
'refreshreport'=> \&refreshReport,
);
if ($states{$page}) {
$states{$page}->();
} else {
nopage();
}
print $query->end_html();