# $Id$
use DBI;
+use strict;
+
+my $dsn = "DBI:mysql:database=deptrack;host=localhost";
+my $dbh = DBI->connect($dsn,"deptrack","phptrax");
+
# return program syntax
sub syntax {
# worker function called by tagextract and tagstrip
sub tagcrunch {
my($tag1,$tag2,$intag,@lines) = @_;
- my $line;
- my $pos;
- my @out;
- my $add;
+ my($line,$pos,@out,$add);
while ($line = shift(@lines)) {
if ($intag) {
# parse a directory
sub parsedir {
- my ($dir,$vdir) = @_;
- my $dirhandle;
+ my($dir,$vdir) = @_;
# build virtual path
if (length($vdir)>0) {
$vdir="$vdir/"
}
- opendir($dirhandle, $dir);
- my @list = grep /^[^\.]/, readdir($dirhandle);
- closedir($dirhandle);
+ opendir(DIRHANDLE, $dir);
+ my @list = grep /^[^\.]/, readdir(DIRHANDLE);
+ closedir(DIRHANDLE);
- my @phpfiles=grep /.*.(php|inc)/,@list;
+ my @phpfiles=grep /\.(php|inc)$/,@list;
foreach my $file (@phpfiles) {
parsefile("$dir/$file","$vdir$file");
}
foreach my $entry (@list) {
if (-d $entry) {
if ($entry !~ /^CVS$/) {
- &parsedir("$dir/$entry", "$vdir$entry");
+ &parsedir("$dir/$entry", "$vdir$entry", "$vdir");
}
}
}
# parse a file
sub parsefile {
- my ($file,$vfile) = @_;
- my $fhandle;
+ my($file,$vfile,$vdir) = @_;
+ my(@lines,@phplines,@includes);
- open($fhandle,$file);
- @lines = <$fhandle>;
- close($fhandle);
+ open(FHANDLE,$file);
+ @lines = <FHANDLE>;
+ close(FHANDLE);
+ # strip out commented code
@lines = tagstrip("<!--","-->",@lines);
- @lines = tagextract("<?php","?>",@lines);
- @lines = tagstrip("/*","*/",@lines);
- @lines = commentstrip("\/\/",@lines);
- @lines = grep /(require|include)\s*\(/, @lines;
- print @lines;
+
+ # deal with PHP lines
+ @phplines = tagextract("<?php","?>",@lines);
+ @phplines = tagstrip("/*","*/",@phplines);
+ @phplines = commentstrip("\/\/",@phplines);
+ @phplines = commentstrip("#",@phplines);
+ @includes = grep /(require|include)\s*\(/, @phplines;
+ foreach my $include (@includes) {
+ if ($include =~ /\.inc(\.php)?$/) {
+
+ } else {
+
+ }
+ }
}
# create DB entries for a directory
sub listdir {
- my ($dir,$vdir) = @_;
- my $dirhandle;
+ my($dir,$vdir) = @_;
+ my($sth);
# build virtual path
if (length($vdir)>0) {
- $vdir="$vdir/"
+ $vdir="$vdir/";
}
- opendir($dirhandle, $dir);
- my @list = grep /^[^\.]/, readdir($dirhandle);
- closedir($dirhandle);
+ opendir(DIRHANDLE, $dir);
+ my @list = grep /^[^\.]/, readdir(DIRHANDLE);
+ closedir(DIRHANDLE);
- my @phpfiles=grep /.*.(php|inc)/,@list;
+ my @phpfiles=grep /\.(php|inc)/,@list;
foreach my $file (@phpfiles) {
- my $sth = $dbh->prepare("insert into file set path='$vdir$file'");
+ if ($file =~ /\.inc(\.php)?$/) {
+ $sth = $dbh->prepare("insert into file set path='$vdir$file',type='include'");
+ } else {
+ $sth = $dbh->prepare("insert into file set path='$vdir$file',type='page'");
+ }
$sth->execute;
}
my $nargs = @ARGV;
$nargs || syntax();
-$dsn = "DBI:mysql:database=deptrack;host=localhost";
-$dbh = DBI->connect($dsn,"deptrack","phptrax");
-
my $topdir = $ARGV[0];
$topdir =~ s/\/$//;
listdir($topdir,"");
parsedir($topdir,"");
-#parsefile("p.php","");