The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Tk::Mirror - Perl extension for a graphic user interface to up- or download local and remote directories

SYNOPSIS

# in the simplest kind and manner

 use Tk::Mirror;
 use Tk;
 my $mw->MainWindow->new();
 $mw->Mirror()->grid();
 MainLoop();

# in a detailed kind

 use Tk;
 use Tk::Mirror;
 my $mw = MainWindow->new();
 my $mirror = $mw->Mirror(
        -localdir               => 'D:\\Homepage',
        -remotedir      => 'www.tiscali.de/name',
        -user           => 'my_ftp@username.de'
        -ftpserver      => 'ftp.server.de',
        -pass           => 'my_password',
        -debug          => 1,           # default       = 1
        -delete         => 'enable',    # default       = 'disabled'
        -exclusions     => ["private.txt", "secret.txt"],
        -subset         => [qr/(?i:HOME)(?i:DOC)?/, '.html'],
        -timeout                => 60,
        -connection     => undef, # or a connection  to a ftp-server 
        -overwrite      => 'older',     # 'none', 'all', 'older', default = 'none'
        )->grid();
 for(keys(%{$mirror->GetChilds()}))
        {
        $mirror->Subwidget($_)->configure(
                -font   => "{Times New Roman} 14 {bold}",
                );
        }
 for(qw/
        TreeLocalDir
        TreeRemoteDir
        /)
        {
        $mirror->Subwidget($_)->configure(
                -background     => "#FFFFFF",
                -width          => 40,
                -height         => 20,
                );
        }
 for(qw/
        bEntryUser
        EntryPass
        bEntryFtpServer
        bEntryLocalDir
        bEntryRemoteDir
        /)
        {
        $mirror->Subwidget($_)->configure(
                -background     => "#FFFFFF",
                );
        }
 MainLoop();
 

DESCRIPTION

This is a graphic user interface to compare, up- or download local and remote directories.

CONSTRUCTOR and INITIALIZATION

(widget-Mirror-object) MainWindowObject->Mirror (options)

OPTIONS

-ftpserver the hostname of the ftp-server
-user the username for authentification
-pass password for authentification
-localdir local directory selecting information from, default '.'
-remotedir remote location selecting information from, default '/'
-debug set it true for more information about the ftp-process, default 1
-timeout the timeout for the ftp-serverconnection
-delete set this to "enable" to allow the deletion of files, default "disabled"
-connection A Net::FTP-object, you should not use that. default = undef
-exclusions A reference to a list of strings interpreted as regular-expressios ("regex") matching to something in the pathnames, you do not want to list. default = empty list [ ]
-subset A reference to a list of strings interpreted as regular-expressios matching to something in the local or remote pathnames, pathnames NOT matching will be ignored. You can also use a regex object [qr/TXT/i, "name", qr/MY_FILES/i, $regex] default = empty list [ ]
-overwrite Set the behavior for up- and download. 'none', 'all', 'older' default = 'none' The option 'older' will work only correctly, when both the FTP-Server and the computer using the same time-zone.

METHODS

(ref_hash_all_childs) Tk::MirrorObject->GetChilds (void) returns a hash of all childs used in the put-together widget, on which you can call the "configure" function.
 KEYS                   VALUES
 'LabelUser'            => $label_user,
 'bEntryUser'           => $m->{bentry_user},
 'LabelFtpServer'               => $label_ftpserver,
 'bEntryFtpServer'              => $m->{bentry_ftpserver},
 'LabelPass'            => $label_pass,
 'EntryPass'            => $m->{entry_pass},
 'LabelLocalDir'                => $label_local_dir,
 'LabelRemoteDir'               => $label_remote_dir,
 'bEntryLocalDir'               => $m->{bentry_local_dir},
 'bEntryRemoteDir'      => $m->{bentry_remote_dir},
 'TreeLocalDir'         => $m->{tree_local_dir},
 'TreeRemoteDir'                => $m->{tree_remote_dir},
 'LabelOverwrite'               => $m->{label_overwrite},
 'rButtonNone'          => $m->{rbutton_none},
 'rButtonAll'           => $m->{rbutton_all},
 'rButtonOlder'         => $m->{rbutton_older},
 'ButtonUpload'         => $m->{button_upload},
 'ButtonCompare'                => $m->{button_compare},
 'ButtonDownload'               => $m->{button_download},
(ref_scalar_child) MirrorObject->Subwidget(above shown key) returns a reference of a child widget you can call the configure method

You should NOT use the following methods directly!!!

(1|undef) Tk::MirrorObject->CompareDirectories (void) Compares the localdirectory with the remotedirectory and draws the directory trees.
(1|undef) Tk::MirrorObject->Download (void) Download the remote directory to local hard disk, and draws the directory trees again.
(1|undef) Tk::MirrorObject->Upload (void) Upload the local directory from hard disk to the remote FTP-location, and draws the directory trees again.
(1|undef) Tk::MirrorObject->SetParams (void) Hands over the parameter, entered in the graphic user interface, to the Net::Download- and Net::Upload-Object.
(1) Tk::MirrorObject->StoreParams (void) Stores the values, entered in the graphic user intervace.
(1) Tk::MirrorObject->UpdateAccess (attribute, browseentry, value) Called by the BrowseEntry-Widget to update other widgets.
(1) Tk::MirrorObject->InsertLocalTree (void) Insert the local directory-tree after a call to the Compare() method.
(1) Tk::MirrorObject->InsertRemoteTree (void) Insert the remote directory-tree after a call to the Compare() method.
(1) Tk::MirrorObject->InsertStoredValues (void) Insert the stored parameters in the BrowseEntry-Widgets.
(1) Tk::MirrorObject->InsertPaths (tree-widget, ref_array_paths) Takes a tree-widget and a array-reference of pathnames to insert them in the directory tree.
(1) Tk::MirrorObject->DeletePaths (tree-widget, ref_array_paths) Takes a tree-widget and a array-reference of pathnames to delete them from the directory tree.
(1) Tk::MirrorObject->InsertProperties (tree-widget, ref_array_paths, property) Takes a tree-widget, a array-reference of pathnames and a string. The string will be added to all pathnames.
(1) Tk::MirrorObject->DeleteProperties (tree-widget, ref_array_pahts) Takes a tree-widget and a array-reference of pathnames. All strings, added to the pathnames, will be deleted.
(1) Tk::MirrorObject->InsertRemoteModifiedTimes (ref_array_remote_files) Takes a array-reference of remote files. The last- and current modified-times from the remote files, will be added.
(1) Tk::MirrorObject->InsertLocalModifiedTimes (ref_array_local_files) Takes a array-reference of local files. The last- and current modified-times from the local files, will be added.

EXPORT

None by default.

SEE ALSO

 Tk
 Net::MirrorDir
 Net::UploadMirror
 Net::DownloadMirror
 http://freenet-homepage.de/torstenknorr/index.html

BUGS

Maybe you'll find some. Let me know.

REPORTING BUGS

 When reporting bugs/problems please include as much information as possible.

AUTHOR

Torsten Knorr, <create-soft@tiscali.de>

COPYRIGHT AND LICENSE

Copyright (C) 2006 - 2008 by Torsten Knorr

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.9.2 or, at your option, any later version of Perl 5 you may have available.

8 POD Errors

The following errors were encountered while parsing the POD:

Around line 871:

'=item' outside of any '=over'

Around line 873:

You forgot a '=back' before '=head2'

Around line 875:

'=item' outside of any '=over'

Around line 920:

You forgot a '=back' before '=head2'

Around line 922:

'=item' outside of any '=over'

Around line 951:

You forgot a '=back' before '=head2'

Around line 953:

'=item' outside of any '=over'

Around line 1008:

You forgot a '=back' before '=head2'