correction syntaxiques
authorJeremy Laine <jeremy.laine@m4x.org>
Sat, 23 Nov 2002 00:24:49 +0000 (00:24 +0000)
committerJeremy Laine <jeremy.laine@m4x.org>
Sat, 23 Nov 2002 00:24:49 +0000 (00:24 +0000)
deptrack/deptrack.pl

index f54491d..b31ed06 100755 (executable)
@@ -3,6 +3,11 @@
 # $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 {
@@ -13,10 +18,7 @@ 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) {
@@ -82,19 +84,18 @@ sub commentstrip {
 
 # 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");
   }
@@ -102,7 +103,7 @@ sub parsedir {
   foreach my $entry (@list) {
     if (-d $entry) {
       if ($entry !~ /^CVS$/) {
-        &parsedir("$dir/$entry", "$vdir$entry");
+        &parsedir("$dir/$entry", "$vdir$entry", "$vdir");
       }
     }
   }
@@ -110,38 +111,52 @@ sub parsedir {
 
 # 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;
   }
   
@@ -158,12 +173,8 @@ sub listdir {
 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","");