Subversion Repositories svn.Prod repos

Compare Revisions

No changes between revisions

Ignore whitespace Rev 11 → Rev 12

/filefind/perl/filefind.pl
0,0 → 1,102
#!/usr/bin/env perl
# =============================================================================
# Create
# name : Andre Rikkert de Koe date: apr 2011
# descr : filefind
# This is a demo of programming in the perl language.
# Its part of a project to implement a program to create a directory
# tree similar to the output of the Unix find program.
# Because of the example, we don't use the standard File::Find module.
# EUID : Any user who has read access to all the files being searched for.
# run : interactive
#
# Changes
# name : date:
# descr : short description
#
# =============================================================================
 
use File::Basename;
use Cwd;
 
# =============================================================================
# Functions
# =============================================================================
 
sub Usage
{
my ($progname, $mesg) = @_;
 
print "Usage : $progname directory\n";
print "$mesg\n"
}
 
#
# dir is directory to traverse
#
sub traverse
{
my ($dir) = @_;
 
my $curdir = getcwd();
chdir($dir);
my $curdir2 = getcwd();
opendir(FH, $curdir2);
my @files = readdir(FH);
foreach $file (@files)
{
my $pfile = $curdir2 . "/" . $file;
if (-d $file && ! -l $file)
{
if ($file ne ".." && $file ne ".")
{
print "$pfile\n";
traverse($file)
}
}
else
{
if (-f $file || -l $file)
{
print "$pfile\n"
}
else
{
print("WARNING: Could not process file $pfile\n")
}
}
}
close(FW);
chdir($curdir)
}
 
sub start_traverse
{
my ($directory) = @_;
 
print "$directory\n";
traverse($directory)
}
 
# =============================================================================
# MAIN
# =============================================================================
 
$progname = basename($0);
if ($#ARGV == 0)
{
$directory = $ARGV[0];
if (-d $directory)
{
start_traverse($directory);
}
else
{
Usage ($progname, "ERROR: No directory $directory found");
}
}
else
{
Usage ($progname, "ERROR: 1 argument expected");
}
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/filefind/perl/Makefile
0,0 → 1,15
 
DIR = /home/arikkert
 
test: filefind.pl
./filefind.pl $(DIR) > result
sort result > result.sort
find $(DIR) > result2
sort result2 > result2.sort
wc *.sort
diff *.sort
 
clean:
rm -f filefind
rm -rf result result.sort
rm -rf result2 result2.sort