Downloads Source Javadoc
Author: Fred Gylys-Colwell
Home Page: Mirror Program
Version: $Name: $, $Revision: 1.1 $
Release Tag: $
Release Date: 2001/03/26 02:30:28
JVM Required: 1.2
License: GNU General Public License
Categories: utility
Dependencies: No dependencies
Externals: None

A file transfer application. This program is used keep the files on two different computers the same. It scans the directory tree for files that have changed recently, and writes these files to a disk or file. On the second machine it reads this disk and writes the files in the propper place.

The two major features that make this program useful (instead of just using tar) are:

  • A configuration file allows you to rename files. For example:
    .Xdefaults (on home machine) <--> .Xdefaults.home (on work machine) (on home machine) <--> .Xdefaults (on work machine)
  • You can configure certain files not to be sent. For example, any file name "*.class", a.out, *.o, junk.*. Or any file that is executable and has magic type ELF.

    The following is a brief outline of the code, for anyone who wishes to modify it. You should look for the file install.html and configure.html for information about installing and configuring the program.

    The main code is started in {@linkorg.gjt.fredgc.mirror.Main}. It uses the parser to read the configuration file, and then creates a {@link org.gjt.fredgc.mirror.Verify}, {@linkorg.gjt.fredgc.mirror.GUI} or {@link org.gjt.fredgc.mirror.LineReader} to interact with the user and verify sending/receiveing of files.

    The parser, {@linkorg.gjt.fredgc.mirror.RCFile}, is generated by JavaCC from the file Grammar.jj. This parses the files .mirror into a collection collection of {@link org.gjt.fredgc.mirror.Connection} objects, and a collection of {@linkorg.gjt.fredgc.mirror.Condition}'s and {@linkorg.gjt.fredgc.mirror.Match}'s and {@linkorg.gjt.fredgc.mirror.Translation}'s.

    The {@linkorg.gjt.fredgc.mirror.LogFile} records the last send and recieve dates. Files are only considered for sending if they have changed since the last succesful send date.

    The classes {@linkorg.gjt.fredgc.mirror.FilePair} and {@linkorg.gjt.fredgc.mirror.FileStatus} hold information about a file name, type and status. It uses native (JINI) code to access the C function fstat. It also keeps track of name changes if the file changes when it is sent to the remote computer.


    The following page lists the available downloads for the release of package 'org.gjt.fredgc.mirror' tagged ' $'. If you need to work with releases other than ' $', you will need to use the anonymous CVS server to access them.