SYNOPSIS
use Filesys::Virtual::Plain;
my $fs = Filesys::Virtual::Plain->new();
$fs->login('xantus', 'supersekret');
print foreach ($fs->list('/'));
DESCRIPTION
This module is used by other modules to provide a pluggable filesystem.CONSTRUCTOR
new()
You can pass the initial cwd, root_path, and home_path as a hash.METHODS
login($username, $password, $become)
Logs in a user. Returns 0 on failure. If $username is 'anonymous' then it will try to login as 'ftp' with no password. If $become is defined then it will try to change ownership of the process to the uid/gid of the logged in user. BEWARE of the consequences of using $become. login() also sets the uid, gid, home, gids, home_path, and chdir to the users'.cwd
Gets or sets the current directory, assumes / if blank. This is used in conjunction with the root_path for file operations. No actual change directory takes place.root_path($path)
Get or set the root path. All file paths are off this and cwd For example:
$self->root_path('/home/ftp'); $self->cwd('/test'); $self->size('testfile.txt');
The size command would get the size for file /home/ftp/test/testfile.txt not /test/testfile.txt
chmod($mode,$file)
chmod's a file.modtime($file)
Gets the modification time of a file in YYYYMMDDHHMMSS format.size($file)
Gets the size of a file in bytes.delete($file)
Deletes a file, returns 1 or 0 on success or failure.chdir($dir)
Changes the cwd to a new path from root_path. Returns undef on failure or the new path on success.mkdir($dir, $mode)
Creats a directory with $mode (defaults to 0755) and chown()'s the directory with the uid and gid. The return value is from mkdir().rmdir($dir)
Deletes a directory or file if -d test fails. Returns 1 on success or 0 on failure.list($dir)
Returns an array of the files in a directory.list_details($dir)
Returns an array of the files in ls format.stat($file)
Does a normal stat() on a file or directorytest($test,$file)
Perform a perl type test on a file and returns the results.For example to perform a -d on a directory.
$self->test('d','/testdir');
See filetests in perlfunc (commandline: perldoc perlfunc)