package File::UseList;
#
-# File::UseList
+# File::UseList 1.2
#
# Run a list with files that are currently in use
-# (bases upon Filing::UseList by Roland Bluethgen <calocybe@web.de>)
+# (bases on Filing::UseList by Roland Bluethgen <calocybe@web.de>)
#
# Author: Patrick Canterino <patshaping@gmx.net>
-# Last modified: 09-26-2003
+# Last modified: 2003-11-21
#
use strict;
use Carp qw(croak);
-our $VERSION = '1.1';
-
# new()
#
# Constructor
# lockfile => Lock file (Default: List file + .lock)
# timeout => Lock timeout in seconds (Default: 10)
#
-# Return: File::UseList object
+# Return: File::UseList object (Blessed Reference)
sub new(%)
{
# Check if we got all the necessary information
- croak "Missing path of list file" unless($args{'listfile'});
- $args{'lockfile'} = $args{'listfile'}.".lock" unless($args{'lockfile'}); # Default filename of lock file
- $args{'timeout'} = 10 unless($args{'timeout'}); # Default timeout
+ croak "Missing path to list file" unless($args{'listfile'});
+ $args{'lockfile'} = $args{'listfile'}.".lock" unless($args{'lockfile'}); # Default filename of lock file
+ $args{'timeout'} = 10 unless($args{'timeout'}); # Default timeout
- # Create $self
+ # Add some other information
- my $self = \%args;
- $self->{'files'} = [];
- $self->{'locked'} = 0;
+ $args{'files'} = [];
+ $args{'locked'} = 0;
- return bless($self,$class);
+ return bless(\%args,$class);
}
# lock()
if($self->{'locked'})
{
- return 1 if(-f $lockfile); # Hmmm...
-
- open(LOCKFILE,">",$lockfile) or return;
- close(LOCKFILE) or return;
+ open(LOCKFILE,">$lockfile") or return;
+ close(LOCKFILE) or return;
$self->{'locked'} = 0;
-
return 1;
}
- # The list wasn't lock by ourselves
+ # The list wasn't lock by us or it isn't locked at all
return;
}
# load()
#
-# Load the list with files
+# Load the list with files from the list file
#
# Params: -nothing-
#
# Read out the file and split the content line-per-line
- open(FILE,"<".$file) or return;
+ open(FILE,"<$file") or return;
read(FILE, my $content, -s $file);
- close(FILE) or return;
+ close(FILE) or return;
my @files = split(/\015\012|\012|\015/,$content);
# save()
#
-# Save the list with files
+# Write the list with files back to the list file
#
# Params: -nothing-
#
my $data = (@$files) ? join("\n",@$files) : '';
- open(FILE,">",$temp) or return;
- print FILE $data or do { close(FILE); return };
- close(FILE) or return;
+ open(FILE,">$temp") or return;
+ print FILE $data or do { close(FILE); return };
+ close(FILE) or return;
- rename($temp,$file) and return 1;
+ rename($temp,$file) or return;
- # Rubbish
-
- return;
+ return 1;
}
# add_file()
# Add a file to the list
#
# Params: File
+#
+# Return: Status code (Boolean)
sub add_file($)
{
return if($self->in_use($file));
push(@$files,$file);
+ return 1;
}
# remove_file()
# Remove a file from the list
#
# Params: File
+#
+# Return: Status code (Boolean)
sub remove_file($)
{
if($files->[$x] eq $file)
{
splice(@$files,$x,1);
- last;
+ return 1;
}
}
}
1;
#
-### Ende ###
\ No newline at end of file
+### End ###
\ No newline at end of file